Ich habe einen Ubuntu-Server auf Amazon EC2, die ich für die Entwicklung verwenden, und heute habe ich dummerweise gelöscht alles aus meiner ~/.ssh/authorized_keys
Datei. Glücklicherweise habe ich SSH geöffnet, so dass ich immer noch verbunden bin und die Datei reparieren kann, aber wenn ich versuche, meine Schlüsseldatei wieder einzusetzen, funktioniert es nicht. Ich erhalte immer noch eine verweigerte Erlaubnis vom Server auf meinem lokalen Rechner.
authorized_keys
hat die Berechtigung 600. Ich habe versucht, meinen SSH-Schlüssel mit ssh-rsa anzuhängen und ssh-rsa deaktiviert zu lassen. Ich habe auch versucht, den SSH-Schlüssel in eine einzige Zeile einzutragen, aber auch das hat nicht funktioniert.
Gibt es noch etwas, das ich tun muss, wie z. B. die Datei neu laden?
Sie sollten niemals die Datei, deren Inhalt mit -----BEGIN RSA PRIVATE KEY-----
beginnt, auf dem Server speichern, das ist Ihr privater Schlüssel. Stattdessen müssen Sie den öffentlichen Schlüssel in der Datei ~/.ssh/authorized_keys
ablegen.
Dieser öffentliche Schlüssel hat die Erweiterung .pub
, wenn er mit ssh-keygen
erzeugt wurde, und sein Inhalt beginnt mit ssh-rsa AAAAB3
. (Das Binärformat ist in den Antworten auf diese Frage beschrieben).
Die Berechtigungen von ~/.ssh
auf dem Server sollten 700 sein. Die Datei ~/.ssh/authorized_keys
(auf dem Server) soll einen Modus von 600 haben. Die Berechtigungen des (privaten) Schlüssels auf der Client-Seite sollten 600 sein.
Wenn der private Schlüssel nicht mit einem Passwort geschützt war und Sie ihn auf dem Server abgelegt haben, empfehle ich Ihnen, einen neuen zu erzeugen:
ssh-keygen -t rsa
Sie können dies überspringen, wenn Sie ganz sicher sind, dass niemand den gelöschten privaten Schlüssel vom Server wiederherstellen kann.
Wenn dies nicht hilft, führen Sie ssh
mit Optionen für mehr Ausführlichkeit aus:
ssh -vvv [email protected]
Auf der Serverseite können Sie /var/log/auth.log
für Details überprüfen.
Wenn Sie eine Login-basierte Authentifizierung haben, verwenden Sie ssh-copy-id
, um Ihre öffentlichen Schlüssel an den entfernten Server anzuhängen.
ssh-copy-id user@host
local> scp .ssh/id_dsa.pub remote.com:
local> ssh remote.com
remote> cat id_dsa.pub >> .ssh/authorized_keys
remote> rm id_dsa.pub
remote> exit