Public und Private Key einrichten
Wie Sie das SSH-Login mittels Public und Private Key auf einem Linux Server einrichten, erklären wir in diesem Artikel.
Die Linux Server werden von Softronics standartmässig mit dem SSH-Login mittels Benutzername und Passwort eingerichtet. Um mehr Sicherheit zu erhalten, können Sie die Authentifizierungsmethode mit einem Schlüsselpaar verwenden. Im Vergleich zur Benutzername/Passwort-Authentifizierung bietet diese einige Vorteile:
- Vollautomatisiertes Login (ohne Hinterlegung eines Passphrases)
- Da für das Login ein Schlüsselpaar verwendet wird, ist das Hacken durch Brut-Force-Attacken ausgeschlossen. Das Login mittels Passwort muss jedoch deaktiviert sein.
- Sie können für jeden Benutzer einen entsprechenden Privat-Key generieren und auf dem Server aktivieren.
Schritt 1: Erzeugen des Schlüsselpaares
Das benötigte Schlüsselpaar kann einfach über die Shell generiert werden mit dem Befehl
ssh-keygen
Ohne weitere Angeben wird das Schlüsselpaar mit dem Algorithmus rsa und einer Läng von 2048 bits erzeugt.
- rsa Das RSA-Verschlüsselungsverfahren ist ein häufig benutztes Verschlüsselungsverfahren, weil es sehr sicher ist. Es gehört zu der Klasse der asymmetrischen Verschlüsselungsverfahren. Die Schlüssellänge ist 2048 bits oder besser 4096 bits.
- dsa
- ecdsa
- ed25519
Mit der Option –t wird der Algorithmus bestimmt und mit –b die Schlüssellänge
ssh-keygen –t rsa –b 4096
ssh-keygen –t dsa
ssh-keygen –t ecdsa –b 521
ssh-keygen –t ed25519
Schritt 2: Erzeugen des Schlüssels und der Passphrase
Nachdem der Befehl eingegeben wurde, müssen noch einige Fragen beantwortet werden.
Enter file in which to save the key (/root/.ssh/id_rsa) :
Wenn der Pfad nicht geändert werden soll, bestätigen Sie mit Enter.
Enter passphrase (empty for no passphrase) :
Enter same passphrase again :
Entscheiden Sie, ob Sie eine Passphrase verwenden möchten. Die Eingabe einer Passphrase hat den Vorteil, dass die Sicherheit eines Schlüssels verbessert wird. Sollte der Schlüssel in fremde Hände fallen, benötig man immer noch dir Passphrase für das Login. Nachteil natürlich, wenn Sie eine Passphrase verwenden, diese muss dann bei jeder Verwendung des Schlüsselpaars eingegeben werden.
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:
ea:a1:ff:3b:ce:6d:af:b2:5f:34:10:35:7a:ee:4e:ed user@test.mydomain.tld
Der Schlüssel wurde generiert und im angegeben Verzeichnis gespeichert.
Schritt 3: Privat-Key vom Server entfernen
Der Private-Schlüssel wurde in .ssh/id_rsa gespeichert. Wir empfehlen, diesen vom Server zu entfernen und an einem geschützten Ort zu sichern.
Schritt 4: Public-Key für das Login hinterlegen
Damit zukünftig ein Login mit dem 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.
Der öffentliche Schlüssel befindet sich im Verzeichnis /root/.ssh/ in der Datei id_rsa.pup. Diese Datei muss nun noch umbenennt werden.
# mv id_rsa.pup authorized_keys
Jetzt noch die Rechte anpassen mit:
# chmod 0700 ~/.ssh –R
Schritt 5: Login testen
Prüfen Sie nun das Login mit dem Privat-Key. Sollte es nicht funktionieren, ist bei der Installation ein Fehler unterlaufen. Sie benötigen Unterstützung? Dann melden Sie sich bei unserem Support.
Schritt 6: Passwort-Login deaktivieren
Nachdem das SSH-Login mit dem Schlüssel erfolgreich war, können Sie zur erhöhten Sicherheit, das SSH-Login mit Benutzer/Passwort deaktivieren.
Öffne das SSH-Konfig-File.
# sudo nano /etc/ssh(sshd_config)
Suche nun die Zeile mit PasswordAuthentification yes und passe diese so PasswordAuthentification no an, dass nur noch das Login mit SSH-Key möglich ist.
Damit die Änderungen aktiv werden führen Sie noch den Befehl:
# restart ssh
Login mit PuTTY
Im SSH-Client "PuTTY" kann vor dem Verbindungsversuch ein privater Schlüssel ausgewählt werden. Wählen Sie hierfür unter "Connection", "SSH", "Auth" Ihren privaten Schlüssel aus. Anschliessend können Sie wie gewohnt die Verbindung herstellen. Falls Sie Ihren Schlüssel durch eine Passphrase geschützt haben, wird diese bei jedem Verbindungsaufbau abgefragt.
Schlüssel auf lokalem Computer erzeugen für den Server
Das Schlüsselpaar kann auch auf einem lokalen Linux Computer erzeugt werden. Vom Ablauf her ist das identisch wie oben beschrieben. Der Schlüssel muss in diesem Falle jedoch entsprechend auf den Server kopiert und aktiviert werden. Schritt 3 in der Anleitung oben entfällt. Stattdessen kopieren Sie den Schlüssel auf den Server mit.
SSH-copy-id user@host