Kann ich mich mit SSH auch einloggen, ohne jedes mal mein Passwort eingeben zu müssen? SSH verwendet eine Public-Key Verschlüsselung. Genauso wie per Passwort kann man sich also mittels öffentlichem Schlüssel einem anderen Rechner gegenüber eindeutig identifizieren. Damit man dieses Feature verwenden kann (RSA- oder DSA-Authentifizierung) muss man zuerst sein eigenes Schlüsselpaar erzeugen:

rechner1:~# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
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:
91:95:c0:a0:24:02:16:e0:7d:d4:78:60:d4:d0:60:a8 root@rechner1
rechner1:~#

Um Passworteingaben zu verhindern auf die Frage nach einer "Passphrase" einfach mit "Enter" antworten. Dasselbe gilt auch für alle anderen Fragen: die Voreinstellungen sind korrekt. Ausserdem hat man in seinem Homeverzeichnis (in obigem Beispiel wurde ssh-keygen als root ausgeführt – funktioniert aber als jeder beliebige Benutzer!) ein Verzeichnis .ssh in dem sich neben known_hosts (die Datei in der alle SSH-Server Fingerabdrücke gespeichert werden) auch noch folgende Dateien:

rechner1:~# ls .ssh
id_rsa id_rsa.pub known_hosts
rechner1:~#

id_rsa enthält den privaten Schlüssel, id_rsa.pub den öffentlichen. Um ohne Passwort auf einen Server zu kommen, muss man nur noch den öffentlichen Schlüssel auf den Server kopieren und dort im Homeverzeichnis im Unterverzeichnis .ssh der Datei authorized_keys2 hinzufügen. Wenn diese Datei nicht existiert, dann muss sie einfach neu erstellt werden! (Immer eine Zeile pro Schlüssel!).

rechner1:~# scp .ssh/id_rsa.pub rechner2.mein.lan:~/
root@rechner2.mein.lan´s password:
id_rsa.pub 100% |**********************************************| 222 00:00
rechner1:~# ssh rechner2.mein.lan
root@rechner2.mein.lan´s password:
Last login: Fri Mar 28 15:54:24 2003 from rechner1
Have a lot of fun…
server:~ # cat id_rsa.pub >> .ssh/authorized_keys2
server:~ # exit
logout
Connection to rechner2.mein.lan closed.
rechner1:~# ssh rechner2.mein.lan
Last login: Fri Mar 28 18:20:44 2003 from rechner1
Have a lot of fun…
rechner2~ #

Wie man an der letzten Zeile sehen kann, funktioniert das passwortlose Login bereits!