SSH public-key authentication HOWTO

Dieses HOWTO bietet eine Kurzanleitung wie man sich ssh so einrichtet, dass man (fast) keine Passwörter mehr eingeben muss. Anstatt bei jedem ssh-login das Passwort eingeben zu müssen, werden lediglich der public-key auf dem remote host mit dem private-key auf dem lokalen host verglichen und die Authentisierung findet statt, wenn beide keys zusammenpassen.

Schlüsselpaar generieren

Das Schlüsselpaar generiert man mit:

$ ssh-keygen -t rsa

Nun muss man eine Passphrase angeben, die zwischen 10 und 30 Zeichen lang sein sollte. Anschließend werden in ~/.ssh/ ein public- und ein private-key erzeugt.

Public key übertragen

Jetzt muss man den public-key auf jeden remote host übertragen, den man verwenden möchte. Dazu führt man für jeden host auf dem lokalen Rechner:

$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@remotebox

aus. user muss dabei nicht dem lokal angemeldeten Benutzer entsprechen.

Login

Nun muss nur noch einmalig nach jedem login auf dem lokalen Rechner

$ ssh-add

mit anschließender Eingabe der Passphrase (der bei der key-Erzeugung ausgesucht wurde) ausgeführt werden. Anschließend sind die keys für diese Sitzung freigeschaltet und man kann beliebig via ssh/scp/... auf die remote-hosts zugreifen ohne Passwörter eingeben zu müssen.