Automatischer SSH Login ohne Passworteingabe
Es kann schon recht nervig sein, sich per SSH mit einem anderen Rechner zu verbinden und ständig das Passwort eingeben zu müssen. Gerade für Web-Entwickler, die ständig diese Verbindungen aufbauen, wäre es doch super, wenn man das Passwort nicht ständig eingeben müsste. Hier kommen dann die autorisierten Keys ins Spiel.
Was möchte ich machen?
In meiner Testumgebung habe ich zwei Server: „Al“ und „Peggy“. Ich möchte mich gerne von „Al“ aus auf „Peggy“ per SSH einloggen ohne ein Passwort eingeben zu müssen.
Wie kann ich mich ohne Passworteingabe per SSH verbinden?
Dazu erstelle ich auf „Al“ ein Paar Authentication Keys. Bei der Nachfrage zu Filename, und Passphrase habe ich einfach nur Enter gedrückt.
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/vagrant/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/vagrant/.ssh/id_rsa.
Your public key has been saved in /home/vagrant/.ssh/id_rsa.pub.
The key fingerprint is:
b8:ad:62:68:6c:bc:73:42:64:30:25:53:5f:00:74:37 vagrant@precise64
Jetzt muss auf „Peggy“ das SSH Verzeichnis angelegt werden, wenn es nicht bereits existiert. Für root kann auch ein anderer auf „Peggy“ vorhandener User gewählt werden. Hier muss das Passwort noch eingegeben werden.
ssh root@peggy mkdir -p .ssh
root@peggy's password:
Mit dem folgenden Befehl wird der Key von „Al“ nach „Peggy“ übertragen. Hier wird das Passwort nun endgültig zum letzten Mal benutzt.
cat .ssh/id_rsa.pub | ssh root@peggy 'cat >> .ssh/authorized_keys'
root@peggy's password:
Ab sofort kann man sich einfach per
ssh root@peggy
einloggen ohne Passworteingabe.
Meine Testumgebung habe ich übrigens mit Ansible angelegt. Ansible ist ein cooles Tool um die Erstellung von virtuellen Umgebunden zu vereinfachen.
oder einfach „mremote NG“ nutzen 🙂
Vielen Dank für den Tipp. Das kenne ich leider nicht. Falls es jemandem helfen sollte: Hier der Link dazu.