Für Automatisierungen unter Linux kann es erforderlich werden, Verbindungen auf andere Server per SSH aufzubauen, bei denen kein Passwort angegeben werden bzw. dieses nicht im Klartext im Aufruf stehen soll.

Mit Boardmitteln lässt sich das aber relativ schnell bewerkstelligen.

1. Auf Server A mit User a anmelden und ein Schlüsselpaar ohne Passphrase erzeugen:

a@A:~> ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/a/.ssh/id_rsa): 
Created directory '/home/a/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/a/.ssh/id_rsa.
Your public key has been saved in /home/a/.ssh/id_rsa.pub.
The key fingerprint is:
3e:4f:05:79:3a:9f:96:7c:3b:ad:e9:58:37:bc:37:e4 a@A

2. Auf Server B mit User b das Verzeichnis ~/.ssh anlegen (das gibt es womöglich schon):

a@A:~> ssh b@B mkdir -p .ssh
b@B's password:

3. User a’s öffentlichen Schlüssel in User b’s authorized_keys anhnängen:

a@A:~> cat .ssh/id_rsa.pub | ssh b@B 'cat >> .ssh/authorized_keys'
b@B's password:

4. Jetzt kann sich von Server A mit User a auf Server B mit User B ohne Passwort angemeldet werden:

a@A:~> ssh b@B hostname
B

(Quelle: linuxproblem.org)

Wenn es erforderlich sein sollte, dass Passwort von privaten Teil des SSH-Keys wieder zu entfernen, dann hilft dieser Befehlt:

ssh-keygen -p -f [.ssh/id_rsa]

Hier wird nun das alte Passwort und das Neue (welches leer sein kann) eingegeben.

Share