Ubuntu-Login via SSH Key
Eigentlich ein alter Hut und nun wirklich recht simpel implementiert, doch irgendwie ertappe ich mich selbst oftmals dies zu vergessen – der Login auf meine Linux-Server via SSH-Key ist deutlich angenehmer und besser als der Login per Username / Passwort.
Dieser kleine Guide beschreibt die nötigen Arbeiten auf Basis einer Ubuntu 18.04LTS Installation, lässt sich jedoch ohne Weiteres auch auf andere Distributionen anwenden ( ggf. muss hier das Eine oder Andere Verzeichnis geändert werden ).
Zu Beginn wird auf dem lokalen Rechner ein Schlüsselpaar erstellt. Ich empfehle hier die Schlüssellänge, abweichend vom Standardsetting, auf 4096 Bit zu erhöhen:
ssh-keygen -b 4096
Bei der Frage nach dem Zielverzeichnis von Public- und Private-Key wird standardmäßig das .ssh-Verzeichnis gewählt. Das kann nach Belieben geändert werden, doch in aller Regel kann es einfach beibehalten werden:
Generating public/private rsa key pair.
Enter file in which to save the key (/***/***/.ssh/id_rsa):
Als nächster Schritt muss für den Schlüssel noch ein Passwort vergeben werden. Beim Ignorieren der Eingabe wird der Schlüssel ohne Passwort erstellt, was zwar funktioniert, jedoch nicht zu empfehlen ist – kommt der Schlüssel in „falsche Hände“ ermöglicht dieser einen Login auf den Zielserver ohne weitere Validierung. Somit nun die Eingabe des Passworts:
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Es wird nun das Schlüsselpaar erstellt und entsprechend der Verzeichnisangabe abgelegt:
Your identification has been saved in /***/***/.ssh/id_rsa.
Your public key has been saved in /***/***/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:*** ***@***
Als nächster Schritt folgt die Anmeldung auf dem Zielserver, jetzt ein letztes Mal mittels Username und Passwort 🙂 Je nachdem, mit welchem User die SSH-Anmeldung erfolgen soll, muss nun in das Verzeichnis gewechselt werden – hier in meinem Beispiel ist dies der User „test“:
cd /home/test/.ssh
Für den folgenden Schritt gibt es diverse Tools, wie beispielsweise „ssh-copy-id„, welche diese Arbeit erledigen, doch ich habe mir angewöhnt, die Textzeilen einfach per copy&paste zu übertragen. Somit das File mit dem generierten öffentlichen Schlüssel per Editor öffnen:
vi /***/***/.ssh/id_rsa.pub
und die relevanten Zeilen kopieren:
ssh-rsa AAAAB44zaC1yc2EAAAADAQABAAACAQC7y/LDXuk3S2WNEFtKJExOFidfUITFFhbPkAa52yKdl5HscPM8zFZE9AmzMpoGeweNN/64RQLNwRpGAFIdvdef00bhrhV3unTJGvSoPhf835K+bA7yqqIu7ln7n3wljNufcyrSgHJPd4DAa7Fcf/xIuntQJmsqDJNqstX8L0JT4VRfwKR9fFkqFDccNaFbsoM6N8672yoJ6p64JDa5wl0jNV2OdbRK43exgly5ORVwYLQWM1nbyRWXW1xmdUiqXUnS/TLgxrSGrjhi34kAn===ICHBINNUREINBEISPIEL===P5Zdlv0vzcM9iHhfSPE8rVdGD8OsFpIvqhXeDmrphDlf6B/9UuhFRDbWGGRvfk385U/0spKG560HVSszWKdOPAUcZ2hR328Dat7Lg9YETGd4KAExzVzRSXFbbxe++m+zzjmccnDCVN60pmbTJQDynExOrlNI0xw5Q/pgR69r3I1qch2TCS5a2Vh5ePmuB9wNMUcAM2265P6OHtVmKA8GgxHcB/0roBdlEQ4yR6r/G/dQrbOL7G/YhgbbwNLrhxJDr4f/1+Z3AOTKLHS6ijLS1NdUyFh2277RlzUxcDrLWY6fbF+q5PhiZdPuSfHFrK28ROSEDgks9cLFgfj1853r4d8PxGQfE0M0TUWXTijLR8ueLi40YBhwIXmKmGcaedfw== ***@***
Jetzt wieder auf den Zielserver und dort in dem oben hineingewechselten Verzeichnis diese Zeilen an das Ende der Datei „authorized_keys“ einfügen. Die Datei im Anschluss natürlich speichern, nicht vergessen.
Jetzt erfolgt die Anmeldung mittels des neu generierten Schlüsselpaars. Hierzu anstelle der bisherigen Anmeldung die zusätzliche Angabe des privaten Schlüssels, gefolgt von der Eingabe des zuvor vergebenen Passworts für denselben:
ssh -i /***/***/.ssh/id_rsa test@[IP-des-Zielservers]
Es sollte nun eine Anmeldung mit dem User „test“ auf dem Zielserver erfolgt sein. Zum Abschluss macht es natürlich noch Sinn, die Anmeldung mittels Username / Passwort zu unterbinden. Hierzu wird die Konfigurationsdatei des sshd auf dem Zielserver an folgender Stelle angepasst ( /etc/ssh/sshd_config ):
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
Das wars dann auch schon, die Anmeldung erfolgt nun mittels Keyfiles. Jetzt nur nicht den privaten Schlüssel verlieren … 🙂
blog.neidahl.de - HowTo - SSH-Key Management
[…] hatte mich in meinem Artikel Ubuntu-Login via SSH Key bereits einmal mit der grundlegenden Authentifizierung an einem Linux-System per SSH-Key […]