Wie kann ich für den SSH-Login einen Public-/Private-Key nutzen?

SSH unterstützt neben der klassischen Authentifizierung mittels Benutzernamen/Kennwort auch andere Authentifizierungsmechanismen. Folgend wird die Einrichtung und Verwendung einer Authentifizierung beschrieben, die auf einem Schlüsselpaar (Private-/Public-Key) basiert. Im Vergleich zur Passwort-Authentifizierung bietet dies die Möglichkeit zu einem automatisierter Login, ohne Hinterlegung eines Kennworts.

Erzeugung eines Schlüsselpaars

Sofern Sie noch über kein eigenes Schlüsselpaar verfügen, kann dieses wie folgt ganz einfach über die Shell erzeugt werden. Bitte loggen Sie sich dafür per SSH z.B. auf Ihren Server ein und geben Sie folgenden Befehl ein:

ssh-keygen

Generating public/private rsa key pair.
Enter file in which to save the key (/[serverpfad]/.ssh/id_rsa):     <-- Enter drücken
Enter passphrase (empty for no passphrase):                  <-- Passwort eingeben, mit dem der private Schlüssel geschützt werden soll
Enter same passphrase again:                                 <-- Passwort wiederholen
Your identification has been saved in /[serverpfad].ssh/id_rsa.
Your public key has been saved in /[serverpfad]/.ssh/id_rsa.pub.
The key fingerprint is:
ef:a1:14:3b:ce:6d:af:b2:5f:66:10:35:70:ee:4e:db u*****@*****.ispgateway.de

(*) Alternativ kann z.B. auch unter Windows das Tool puttygen.exe verwendet werden.

Nun wurden zwei Schlüssel im Unterordner „.ssh“ erzeugt. Dabei beinhaltet die Datei „id_rsa“ den privaten und „id_rsa.pub“ den öffentlichen Schlüssel.

Der private Schlüssel sollte nun von dem Server heruntergeladen werden (z.B. per SCP) und an einem sicheren Ort auf der eigenen Festplatte abgelegt werden. Löschen Sie anschließend den privaten Schlüssel auf dem Server. Der private Schlüssel sollte aus Sicherheitsgründen nicht auf dem Server liegen!
Bitte achten Sie darauf, dass der Schlüssel gut gesicht werdensollte, da er nicht ersetzbar ist und neu erzeugt werden muss, sofern er gelöscht wird oder verloren geht.

Public-Key für Login hinterlegen

Damit zukünftig ein Login über Ihren privaten Schlüssel möglich ist, ist es erforderlich, den öffentlichen Schlüssel in Ihrem Home-Verzeichnis im Unterordner „.ssh“ in der Datei „authorized_keys“ zu hinterlegen. Dabei ist es möglich, mehrere öffentliche Schlüssel in dieser Datei zu hinterlegen, um mehreren Nutzern den Zugriff auf diesen Benutzer per SSH zu ermöglichen.

Sollte der Ordner „.ssh“ noch nicht existieren, kann er wie folgt angelegt werden:

cd ~
mkdir .ssh

Anschließend müssen Sie in den Ordner „.ssh“ wechseln und Ihren öffentlichen Schlüssel in der Datei „authorized_keys“ ablegen. Sollten Sie aus dem vorherigen Abschnitt sich einen neuen Schlüssel angelegt haben, so wurde der „.ssh“-Ordner bereits für Sie erstellt und der öffentliche Schlüssel befindet sich in der Datei „id_rsa.pub“. In diesem Fall ist nur noch eine Umbenennung notwendig:

mv id_rsa.pub authorized_keys

Nun müssen noch die Rechte angepasst werden:

chmod 0600 ~/.ssh -R

Jetzt sollten Sie testen, ob ein Login mit Ihrem Private-Key möglich ist. Funktioniert er nicht, ist in einem der vorherigen Schritte ein Fehler unterlaufen.