SSH-Logins auf Public-/Private-Key umstellen

Alle ausklappen Alle einklappen

Grundlegendes

SSH unterstützt neben der klassischen Authentifizierung mittels Benutzernamen/Kennwort auch andere Authentifizierungsmechanismen. Dieser Artikel beschreibt die Einrichtung und Verwendung einer Authentifizierung, welche auf einem Schlüsselpaar (Private-/Public-Key) basiert. Im Vergleich zur Passwort-Authentifizierung bietet dies einige Vorteile:

  • Automatisierter Login, ohne Hinterlegung eines Kennworts
  • Zum Login wird ein privater Schlüssel benötigt. Sofern Sie den Login per Passwort deaktivieren, ist daher ein Hack des Servers aufgrund unsicheren Kennworts ausgeschlossen.
  • Der Public-Key kann auf mehreren JiffyBoxen hinterlegt werden. Sollte eine JiffyBox kompromittiert werden, so ist kein Zugriff auf die verbleibenden JiffyBoxen möglich.

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 z.B. auf einer JiffyBox per SSH ein (*) und geben Sie folgenden Befehl ein:

 

# ssh-keygen

 

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.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 /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
ef:a1:14:3b:ce:6d:af:b2:5f:66:10:35:70:ee:4e:db root@j****.servers.jiffybox.net

 

(*) 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 der JiffyBox 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 der JiffyBox. Der private Schlüssel sollte aus Sicherheitsgründen nicht auf dem Server liegen!

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

 

Anschließend müssen noch die Rechte angepasst werden:

 

# chmod 0700 ~/.ssh -R

 

Sollten der Ordner ".ssh" und die darin befindlichen Dateien noch nicht dem Benutzer des Homeverzeichnis gehören, so müssen Sie noch die Rechte anpassen:

 

# chown root:root ~/.ssh -R <-- Der Benutzername "root" muss gegebenenfalls durch den Benutzer ersetzt werden, in dessen Homeverzeichnis Sie sich befinden

 

Anschließend 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.

Login mit PuTTY

Im kostenfreien SSH-Client "PuTTY" kann vor dem Verbindungsversuch ein privater Schlüssel ausgewählt werden. Bitte wählen Sie hierfür unter "Connection", "SSH", "Auth" Ihren privaten Schlüssel aus. Anschließend können Sie wie gewohnt die Verbindung herstellen. Falls Sie Ihren Schlüssel durch ein Kennwort geschützt haben, wird dieses bei jedem Verbindungsaufbau abgefragt werden.

Die Ausgabe sollte wie folgt aussehen:

 

Using username "root".
Authenticating with public key "xyz"
Passphrase for key "xyz":
jXXXX:~#

Normale Passwortauthentifizierung deaktivieren

Wenn der Zugang über Ihren privaten Schlüssel funktioniert hat, empfiehlt es sich aus Sicherheitsgründen, die Authentifizierung über "Benutzername/Kennwort" komplett zu deaktivieren. Hierfür muss in der Datei "/etc/ssh/sshd_config" die Zeile

 

PasswordAuthentication yes

 

in

 

PasswordAuthentication no

 

umgeändert werden. Anschließend ist es noch erforderlich, den SSH-Server neu zu starten:

 

# service ssh restart

Public-Key in Control-Panel hinterlegen

Besonders komfortabel verhält es sich, wenn Sie eine neue JiffyBox anlegen möchten. Hier können Sie bereits im Vorfeld in den Voreinstellungen Ihren öffentlichen Schlüssel hinterlegen, welcher bei der Anlage neuer JiffyBoxen dann automatisch nach "~/.ssh/authorized_keys" kopiert wird.

Geben sie uns Ihr Feedback

Das freut uns und wir haben Ihre positive Rückmeldung vermerkt. Wenn Sie möchten, teilen Sie uns gerne noch Details mit: Was hat Ihnen besonders gefallen? Welche Informationen waren besonders hilfreich?

Leider können wir Ihr Feedback nicht direkt beantworten, wir verwenden es jedoch, um die FAQ weiterzuentwickeln und zu verbessern. Wir freuen uns auf Ihre Antwort!

Geben sie uns Ihr Feedback

Es tut uns leid, dass Sie mit den FAQ nicht zufrieden sind. Welche Information vermissen Sie? Was können wir besser machen?

Leider können wir Ihr Feedback nicht direkt beantworten, wir verwenden es jedoch, um die FAQ weiterzuentwickeln und zu verbessern. Wir freuen uns auf Ihre Antwort!