Archiv

Archiv für April, 2011

SSH Authentifizierung mittels Public Key

22. April 2011 1 Kommentar

Mittels Public Key Authentifizierung kann man sich via SSH auf einem Server einloggen bzw. Daten übertragen, ohne jedes Mal das Passwort eintippen zu müssen.

Hierfür wird ein sogenannter Private-Key für den Client und ein Public-Key für den Server erzeugt.
Beim Private-Key sollte man darauf achten, dass niemand unbefugten Zugriff darauf bekommt!

Erstmals erzeugen wir das Schlüsselpaar am Client:

user@client:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:

Bei der Frage, wohin der Key gespeichert werden soll, kann man einfach den Standard-Pfad benutzen (siehe oben).
Eine Passphrase kann man ebenso definieren – wenn man keine Passphrase angibt, wird der Key allerdings nicht verschlüsselt.

Jetzt muss noch der öffentliche Key (id_rsa.pub) auf den Zielserver transportiert werden – dies erledigt man am einfachsten mittels ssh-copy-id.

(MAC-User sollten diesen Artikel lesen)

user@client:~$ ssh-copy-id -i id_rsa.pub user@server
user@server's password: 
Now try logging into the machine, with "ssh 'user@server'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

Wenn SSH nicht auf Port 22 lauscht, lautet der Befehl folgendermaßen:

ssh-copy-id '-p PORT -i id_rsa.pub user@server'

Das war’s! Nun sollte man sich ohne Passwort am Server einloggen können.

user@client:~$ ssh server
Linux server 2.6.32-5-686 #1 SMP Wed Jan 12 04:01:41 UTC 2011 i686
user@server:~$

ssh-copy-id in Mac OS X integrieren

19. April 2011 5 Kommentare

Mittels ssh-copy-id kann man sehr einfach einen Public-Key auf den Zielrechner kopieren.
Mac OS X hat dieses Script standardmäßig nicht dabei – folgende Befehle schaffen Abhilfe:

sudo curl "http://public.zettabyte.eu/ssh-copy-id" -o /usr/bin/ssh-copy-id
sudo chmod +x /usr/bin/ssh-copy-id