SSH Public Key Logins
« | 03 Mar 2024 | »Passwörter sind für mich immer noch das beste … weil ich sie im Gehirn speichern und überall hin mitnehmen kann.
Aber sicherer wären natürlich Zertifikate.
Auch beim Login auf SSH Servern.
Und wie ging das noch?
Die Idee dabei ist:
- Ein User
myusergeneriert sich ein Schlüssel-Paar (Public + Private Key). - Der Public-Key wird auf den SSH-Server kopiert und mit dem dortigen Login-User
ssh_userbeknüpft. - Beim Login von
myuserauf dem Server mit demssh_user, erkennt der Server, dassmyuser’s Verschlüsselung zum verknüpften Schlüssel vonssh_userpass. - Und schon läuft die SSH Session wie gewohnt.
Einrichtung einer Public-Key Authentifizierung
Das Tool ssh-keygen erzeugt (falls nicht abgeändert) die beiden Dateien
~/.ssh/id_rsa und ~/.ssh/id_rsa.pub.
Der öffentliche Schlüssel muss jetzt “irgendwie” auf den SSH Server kopiert werden,
entweder direkt, z.B.: per USB stick oder über eine andere SSH-Verbindung.
Dort muss sein Inhalt in die Datei ~/.ssh/authorized_keys eingefügt werden, die im
Homeverzeichnis des Ziel-Login-Useraccounts liegt.
Nachdem der Inhalt nur angefügt werden soll, reicht ein:
Das war es auch schon.
Ab sofort kann man sich per SSH über das Kommondo:
1ssh -i ~/.ssh/id_rsa ssh_user@ssh_server_host_or_ip
einloggen.
Hinweis: Das SSH Tool erfordert, dass der private Schlüssel von keinem anderen User gelesen werden kann.
Einchmod -c 600 ~/.ssh/id_rsakann also noch erforderlich sein.
PuTTY
Das Tool putty verwendet ein eigenes Format und folglich muss der private
SSH Schlüssel in eine .ppk Datei konvertiert werden.
Das mitgelieferte Programm PuTTY Key Generator erledigt das über seinen
Load Button, wonach man nur noch auf Save private key klicken muss,
und den Namen der neuen .ppk angeben muss.

In einer neuen PuTTY Sitzung wird unter
Connection - SSH - Auth - Credentials
dann der Pfad zur gespeicherten private-key Datei angegben,
und schon startet beim Connect eine Schlüssel-gesicherte Übertragung.

Fazit
Public-Key Authentifizierung funktioniert eigentlich gegengleich zu Passwörtern.
Bei einer Passwort-Authentifizierung muss ich das Passwort eines Accounts auf dem Server kennen, damit ich mich einloggen kann.
Bei der Public-Key-Authentifizierung muss im Server-Account ein Public-Key bekannt sein, der zu meinem lokalen privaten Schlüssel passt.
Passwörten kann man eher erraten als generierte private Schlüssel, von daher ist diese Methode sicherer und zu bevorzugen.
… aber wie schon gesagt … Passwörter haben die Vorteil, dass man sie im Gehirn speichern und mittragen kann.