03 Nov 2007, 07:30

SSH-Login mit PublicKeys

Share

Im Normalfall wird man sich an einem SSH-Server mit seinem Benutzernamen und Passwort authentifizieren. Wenn man aber das Passwort nicht immer eintippen möchte, z.B. weil man CVS über SSH benutzt, oder sich oft anmelden muss, dann kann es Sinn machen die Public-Key Anmeldung einzurichten.

Dazu benötigt man zuerst ein Public/Private-Key Pair und, unter Windows, PuTTy mit PuTTy Agent und PuTTyGen.

Linux

Unter Linux ist das erzeugen das Schlüsselpaares ganz einfach:

ssh-keygen -t rsa

Dann liegt der öffentliche Schlüssel unter ~/.ssh/id_rsa.pub. Diese kopiert man dann mit scp auf die Maschine an der man sich ohne Passwort anmelden möchte:

scp ~/.ssh/id_rsa.pub user@host.domain.tld:~/id_rsa.pub

Nun muss man sich noch einmal mit seinem Passwort an diese Maschine anmelden und dann dort folgenden Befehl ausführen:

cat id_rsa.pub >> ~/.ssh/authorized_keys

Fertig. Aber jetzt sollte man sich auch ohne sein Passwort eingeben zu müssen an dem Rechner anmelden können.

Windows

Unter Windows ist das Vorgehen ein kleines bischen komplizierter, aber nicht minder effektiv.

Zunächst einmal muss man sich PuTTy besorgen. Das komplette Archiv mit allen Hilfsprogrammen und dieses irgendwo entpacken.

Danach geht es wie folgt weiter:

  1. PuttyGen” starten.PuTTyGen Howto
  2. Im Bereich “Parameters” “SSH-2 RSA” auswählen.
  3. Im Bereich “Actions” auf “Generate” klicken.
  4. Die Maus über den leeren Bereich bewegen bis der Balken voll ist. Damit sammelt der Schlüsselgenerator zusätzliche Zufallsdaten.
  5. Auf Wunsch noch einen Kommentar zu dem Schlüssel in das Feld “Key comment” eintragen.
  6. Unter “Key passphrase” und “Confirm passphrase” ein Passwort eintragen mit dem der Schlüssel geschützt wird. Dieses muss beim ersten Zugriff auf den Schlüssel eingegeben werden.
  7. Mit “Save private Key” den privaten Schüssel abspeichern, und an einem sicher Ort aufbewahren. Wichtig ist es, ihn nie weiterzugeben!
  8. Mit “Save public Key” den öffentlischen Schlüssel an einem beliebigen Ort speichern. Dieses Schlüssel kann man an jeden weitergeben oder sogar auf die eigene Webseite stellen.
  9. Bevor man PuTTyGen beendet den öffentlichen Schlüssel aus dem Textfeld kopieren (Zwischenablage).
  10. Per PuTTy ganz normal auf dem entfernten Rechner einloggen und die Datei ~/.ssh/authorized_keys bearbeiten. Dort einfach in eine neue Zeile den öffentlichen Schlüssel aus der Zwischenablage einfügen. Abspeichern und wieder vom entfernten System abmelden.
  11. Jetzt muss man den Schüssel noch in den PuTTy Agent importieren. Dazu startet man “Pageant” und klickt doppelt auf das Icon mit dem Hut in der Kommandozeile. Pageant Icon
  12. Dort klickt man auf “Add Key” und wählt den eben gespeicherten Private-Key aus. Nachdem man noch einmal das Passwort des Private-Key eingegeben hat sollte man sich ohne weiter Passwort-Eingaben zum Server verbinden können.
Pageant Add Key