SSH-Zugriff verweigert, wenn die Datei „authorized_keys“ mit Vim erstellt wird

SSH-Zugriff verweigert, wenn die Datei „authorized_keys“ mit Vim erstellt wird

Ich habe eine EC2-Instanz mit einem Ubuntu 16.04 AMI erstellt. Ich habe einen Sudo-Benutzer für dieses AMI erstellt mit:

sudo adduser myuser
sudo usermod -aG sudo myuser

Dann habe ich versucht, dem Benutzer mit einem RSA-Schlüsselpaar, das ich bereits hatte, SSH-Zugriff zu gewähren. Ich habe ein .ssh-Verzeichnis für den neuen Benutzer erstellt:

mkdir ~/.ssh
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

Ich habe meinen öffentlichen Schlüssel kopiert und in „authorized_keys“ eingefügt. Dann habe ich ec2 beendet und meine Verbindung mit folgendem getestet:

cd ~/.ssh
ssh -i "mypem.pem" [email protected]

Ich habe die Fehlermeldung „Zugriff verweigert (öffentlicher Schlüssel)“ erhalten.

Also habe ich den Benutzer verworfen und einen anderen Benutzer erstellt. Dieses Mal habe ich die Datei „authorized_keys“ mit Nano statt mit Vim erstellt und es hat funktioniert.

Hat das jemand erlebt?

Antwort1

Wahrscheinlich hast du es falsch eingefügt.

  • Beginnt es mit ssh-rsaoder mit ssh-ed25519?
  • Steht davor ein Leerzeichen (das sollte NICHT der Fall sein)
  • Bleibt die Groß-/Kleinschreibung erhalten?
  • steht vor jedem Kommentar am Zeilenende ein Leerzeichen?

bevor Sie etwas in vim einfügen, sollten Sie verwenden :set paste, da es alle möglicherweise aktiven Makros für die automatische Vervollständigung/Einrückung/... deaktiviert.

Außerdem haben Sie geschrieben mykey.pem, was die übliche Erweiterung für OpenSSL-Dateien ist, nicht für SSH-Schlüssel. Sind Sie sicher, dass Sie id_rsa.pub/ id_ed25519.pubals öffentlichen SSH-Schlüssel verwendet haben?

Antwort2

Wenn so etwas passiert, würde ich empfehlen fileencryption, fileformatund bombin ViM zu überprüfen. Vergleichen Sie beide Dateien, die, die Sie mit nano bearbeitet haben, und die, die Sie mit vim bearbeitet haben. Öffnen Sie sie mit vim und überprüfen Sie Folgendes:

:set bomb? Dies ist die Byte-Order-Markierung. Wird normalerweise gesetzt, wenn Sie eine UTF-8-Datei mit Notepad.exe unter Windows bearbeiten. Ich hatte damit oft Probleme.

:set ff? Dateiformate dosoder unix.dos haben andere Zeilenenden als Unix.

:set fenc? Die Dateikodierung: möglicherweise wechselt ein Editor von UTF-8 zu Latin1.

Antwort3

myuser muss Zugriff auf .ssh und keyfile haben. Überprüfen Sie, wem sie gehören.

verwandte Informationen