====== 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.