Mit einem SSH-Key könnt ihr verschlüsselt auf ein Netzwerkgerät zugreifen. Für die Authentifizierung wird ein Schlüsselpaar benötigt, das aus einem privaten und einem öffentlichen Schlüssel besteht. Wir zeigen, wie ihr diese SSH-Keys generiert.
Was ist SSH?
SSH ist die Abkürzung für „Secure Shell“ (Sichere Kommandozeile). Per SSH könnt ihr in einer Kommandozeile auf einen anderen Computer im Netzwerk oder über das Internet zugreifen, um diesen beispielsweise aus der Ferne verwalten. Unter Windows funktioniert dafür das kleine Tool PuTTY. In Linux geht das über das Terminal.
Da ihr hier ein einfaches Kommandozeilenprogramm nutzt, braucht ihr am jeweiligen Zielrechner keine grafische Benutzeroberfläche (GUI) oder Maus oder Tastatur oder Bildschirm. Über SSH wird das alles per Remote-Verbindung an eurem jeweiligen Laptop oder PC erledigt.
Damit eine SSH-Übertragung sicher ist, wird ein SSH-Key für die sogenannte Public-Key-Authentifizierung benötigt. Dieser SSH-Key besteht aus zwei Schlüsseln: Dem öffentlichen und privaten Schlüssel. Ihr könnt sie relativ einfach an eurem Rechner generieren.
SSH-Key in Linux und macOS erstellen
1. Schritt:
Öffnet das Terminal. Meistens funktioniert das mit der Tastenkombination [Strg] + [Alt] + [T]. Ansonsten findet ihr das Terminal im Startmenü oder in der Anwendungsübersicht. In macOS findet ihr das Terminal im Ordner /Programme/Dienstprogramme/.
2. Schritt:
In macOS und in vielen Standard-Linux-Distributionen sind die Werkzeuge für die SSH-Key-Erstellung bereits vorinstalliert. Vielleicht müsst ihr in eurer Linux-Distribution also vorher „OpenSSH“ installieren. Das geht auf einer Debian-basierten Distribution wie Ubuntu oder Linux Mint im Terminal mit den folgenden Befehlen:
- sudo apt-get install openssh-server
- sudo systemctl enable ssh
- sudo systemctl start ssh
Nun erstellt ihr den SSH-Key mit dem Befehl:
ssh-keygen -t rsa -b 4096
Das Betriebssystem erstellt nun einen SSH-Schlüssel nach dem RSA-Kryptosystem mit einer Länge von 4096 Bit. Gemäß derzeitigem Stand ist der Schlüssel damit gegen Brute-Force-Attacken sicher.
3. Schritt:
Der Computer fragt, in welcher Datei der Schlüssel abgelegt werden soll. In Linux ist das standardmäßig der versteckte Ordner /home/BENUTZERNAME/.ssh/id_rsa. In macOS ist das der versteckte Ordner /Users/cren/.ssh/id_rsa. Wenn ihr mit der Voreinstellung einverstanden seid, bestätigt den Vorgang mit [Enter]. Ansonsten gebt ihr am besten eine neue Datei mit eindeutigem Namen an. In unserem Beispiel nutzen wir die Standard-Ordner.
4. Schritt:
Optional könnt ihr nun den SSH-Key für noch mehr Sicherheit mit einer Passphrase – also einem Passwort – schützen. Diese müsst ihr danach nochmal bestätigen. Ansonsten lasst ihr die Felder leer und bestätigt zweimal mit [Enter].
5. Schritt:
Der SSH-Key wurde als Schlüsselpaar fertig erstellt. Ihr könnt die zugehörigen Dateien im bei Schritt 3 angegeben Ordner mit einem Texteditor öffnen. Bei uns sieht das Ergebnis so aus:
- Der private Key („Your identification“) ist der Datei /home/jolanda/.ssh/id_rsa gespeichert.
- Der öffentliche Key („Your public key“) ist in der Datei /home/jolanda/.ssh/id_rsa.pub gespeichert.
Falls ihr den Standard-Ordner genutzt habt, bedeutet ein Punkt vor dem Ordnernamen, dass der Order versteckt ist. Unter Linux blendet ihr versteckte Ordner im Dateimanager beispielsweise mit der Tastenkombination [Strg] + [H] ein und aus.
Achtung: Der private Schlüssel (Private Key) darf nicht in fremde Hände gelangen! Denn wer diesen Schlüssel hat, kann auf alle Systeme zugreifen, auf denen der dazugehörige öffentliche Schlüssel gespeichert ist. Die Zugriffsrechte des privaten Schlüssels sollten so eingestellt sein, dass nur der Eigentümer ihn lesen kann.
SSH-Key in Windows erstellen
1. Schritt:
Installiert euch das Programm PuTTY. Startet dann aber nicht PuTTY, sondern das mitinstallierte Programm PuTTYgen. Öffnet dazu das Startmenü, tippt „puttygen“ ein und öffnet das angezeigte Programm.
2. Schritt:
Stellt in PuTTYgen die folgenden Parameter ein:
- Type of key to generate: RSA
- Number of bits in generated key: 4096
Bestätigt mit dem Button „Generate“.
3. Schritt:
PuTTYgen fordert euch nun auf, mit der Maus über die freie Fläche unterhalb des Fortschrittbalkens zu fahren, um den SSH-Key zu erstellen. Danach seht ihr das Ergebnis. In den Feldern „Key passphrase“ und „Confirm passphrase“ könnt ihr noch ein Passwort für den SSH-Key festlegen, sofern gewünscht. Wir lassen das in unserem Beispiel leer.
So speichert ihr den SSH-Key:
- Klickt auf den Button „Save public key“, um den öffentlichen Schlüssel zu speichern.
- Klickt auf den Button „Save private key“, um den privaten Schlüssel zu speichern als PPK-Datei.
Am besten speichert ihr beide Dateien in einem Ordner und gebt den Dateien jeweils einen aussagekräftigen Namen. Das Schlüsselpaar ist nun fertig erstellt und einsatzbereit. Bei bedarf könnt ihr die Dateien in einen Editor ziehen, um den Inhalt anzuschauen.
Wie nutze ich SSH-Schlüssel?
Wenn ihr das SSH-Schlüsselpaar wie oben beschrieben erstellt habt, kopiert ihr den öffentlichen Schlüssel auf den Ziel-Computer, den ihr aus der Ferne oder über das Netzwerk fernsteuern möchtet. Loggt euch dazu auf dem Ziel-Computer ein kopiert den öffentlichen Schlüssel in einen von euch gewünschten Ordner. Der zugehörige Terminal-Befehl lautet:
ssh-copy-id -i ~/Pfad/zur/Schlüsseldatei benutzer@server
Passt den Ordnerpfad, euren Benutzernamen und den Server an. Anschließend könnt ihr euch mit dem folgenden Befehl auf dem Server anmelden:
ssh -i ~/Pfad/zur/Schlüsseldatei benutzer@server
Ein Passwort ist nun für die Anmeldung nicht mehr nötig, da der öffentliche Key auf dem Ziel-Computer mit dem privaten Key eures Rechners zusammenpasst. Falls ihr allerdings eine Passphrase (Passwort) für den SSH-Key vergeben habt, wird diese nun zusätzlich abgefragt.
Falls ihr bei der SSH-Key-Erstellung nicht den Standard-Ordner verwendet habt, gibt die Kommandozeile unter Umständen einen Fehler aus. Dann solltet ihr den privaten Schlüssel in den versteckten Benutzerordner „.ssh“ auf eurem Rechner verschieben. Danach sollte die Anmeldung gelingen.