Inhaltsverzeichnis
Login mit einem ssh-Key
Manchmal hat man das starke Bedürfnis, sich per ssh
an einem entfernten Rechner anzumelden, ohne jedes Mal das Passwort anzugeben. Das muss doch auch anders gehen… geht es auch: man benutzt die Authentifizierung durch einen selbst generierten SSH-Schlüssel.
Schlüssel erzeugen
Der Befehl (auf der Befehlszeile einzugeben) lautet beispielsweise
ssh-keygen -t rsa -f ~/.ssh/mein-neuer-key
Darauf antwortet die Software mit dem Generieren eines Schlüssels, was etwa so aussieht:
Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/wflamme/.ssh/mein-neuer-key. Your public key has been saved in /home/wflamme/.ssh/mein-neuer-key.pub. The key fingerprint is: 67:d1:21:c2:18:66:30:fa:0a:bb:8c:35:ce:0d:9b:e9 flamme@klops The key's randomart image is: +--[ RSA 2048]----+ | o.++. . . | | =. .. o . | |. . . . | | * . . | |* . . S o | |.+ . o | |.E= | |oo o | |o. | +-----------------+
Ob da nun eine Passphrase eingegeben wird, ist jedem selbst überlassen. Ohne Passphrase geht das Anmelden schneller, aber der Schlüssel ist ungeschützt: jeder, der ihn erhält, kann sich damit identifizieren! Sicherer ist es deshalb, eine Passphrase zu verwenden – etwa nach den Vorschlägen von http://imgs.xkcd.com/comics/password_strength.png
Schlüssel verteilen
Um den Schlüssel einsetzen zu können, muss er auf dem entfernten Rechner in der Datei ~/.ssh/authorized_keys
des Remote-Nutzers vorkommen. Dazu gibt es umständliche und einfache Methoden . Aus Gründen der Bequemlichkeit nehme ich die einfache…
Wenn der entfernte Rechner knurps.example.org
heißt und der Nutzer dort ottokar
, kann man den Schlüssel mit dem folgenden Befehl übertragen:
ssh-copy-id -i ~/.ssh/mein-neuer-key ottokar@knurps.example.org
Bei dieser Übertragung muss man zum letzten Mail das Passwort eingeben:
Password: Now try logging into the machine, with "ssh 'ottokar@knurps.example.org'", and check in: ~/.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
Automatik
Damit dieser Key auch jedes Mal benutzt wird, kann man sich seine Datei ~/.ssh/config
entsprechend einrichten:
Host knurps.example.org User ottokar IdentityFile ~/.ssh/mein-neuer-key
Beim nächsten Mal muss man nur noch mit ssh knurps.example.org
eingeben, um sich auf der entfernten Maschine anzumelden.