
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
myuser
generiert sich ein Schlüssel-Paar (Public + Private Key). - Der Public-Key wird auf den SSH-Server kopiert und mit dem dortigen Login-User
ssh_user
beknüpft. - Beim Login von
myuser
auf dem Server mit demssh_user
, erkennt der Server, dassmyuser
’s Verschlüsselung zum verknüpften Schlüssel vonssh_user
pass. - 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_rsa
kann 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.