Archiv für: Juli 2009, 01
SSH - Einloggen automatisieren mit öffentlichem Schlüssel
Juli 1st, 2009Wer den Sicherheitsanforderungen der heutigen Zeit nachkommt und möglichst komplizierte Passwörter für SSH verwendet, muss sich dieses Plus an Sicherheit mit deutlichem Mehraufwand beim Einloggen erkaufen. Es gibt jedoch auch noch eine andere Möglichkeit: Man generiert ein asynchrones Schlüsselpaar, plaziert den öffentlichen Schlüssel auf dem Zielsystem und und lässt SSH die Authentifizierung (mit Hilfe der Schlüssel) erledigen. So erspart man sich das lästige Einloggen.
Naja, zugegeben - man kann auch ein Passwort für die Verwendung des Schlüssels setzen, was zur Folge hat, dass man doch ein Passwort eingeben muss, aber man kann dies auch einfach weglassen. Nun aber zur Beschreibung der Vorgehensweise, um sich von Rechner r1, mit dem Account a1 auf dem Rechner r2 mit dem Account a2 einzuloggen:
Zuerst wird das Schlüsselpaar für SSH generiert.
ssh-keygen -t rsa
Man wird daraufhin aufgefortert einen Namen für die Schlüssel anzugeben. Der Einfachheit halber, nehme ich mal an, dass man den vorgeschlagenen Namen "/home/a1/.ssh/id_rsa" übernommen hat. Das Passwort, das man nun eingeben soll, kann man leer lassen.
Im nächsten Schritt wird der öffentliche Schlüssel auf Rechner r2 übertragen, wozu man ein letztes Mal das Passort von a2 auf Rechner r2 eingeben muss:
cat /home/a1/.ssh/id_rsa.pub | ssh a2@r2 'cat >> .ssh/authorized_keys'
Benutzename und Rechnername muss man natürlich ersetzen. Voraussetzung für obige Befehlszeile ist, dass auf Rechner r2 bereits das Verzeichnis ".ssh" existiert. Sollte das nicht der Fall sein, kann man es mit folgendem Befehl zuvor anlegen:
ssh a2@r2 mkdir .ssh