Benutzer-Werkzeuge

Webseiten-Werkzeuge


comp:sshkeylogin

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.

comp/sshkeylogin.txt · Zuletzt geändert: 2012-12-12 1548 von werner

Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki