Einfaches Login mit ssh keys

Manchmal möchte man einfach kein passwort eingeben müssen um von einem auf den anderen Rechner zu kommen. Oder sich einfach nicht verschiedene Passwörter merken müssen. Dazu lassen sich ssh-keys sehr einfach und schön nutzen. Als erstes muss man sich einen ssh-key erzeugen.

ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/test/.ssh/id_rsa):
Created directory '/home/test/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/test/.ssh/id_rsa.
Your public key has been saved in /home/test/.ssh/id_rsa.pub.
The key fingerprint is:
9c:92:f0:fd:9e:06:8a:07:b8:1f:62:bd:bd:e9:d1:0c test@tn.xxx.de

Mit diesem Kommando haben wir einen recht sicheren 4096 Bit Key erzeugt. Daraus ergeben sich nun zwei Dateien, welche in diesem Beispiel unter .ssh des users test liegen.

[test@tn ~]$ cd .ssh/
[test@tn .ssh]$ ls
id_rsa  id_rsa.pub

Die Datei id_rsa enthält nun den privaten Schlüssel. Wie privat schon sagt, ist er der Schlüssel der geschützt werden muss. Diesen Schlüssel sollte niemand in die Finger bekommen (Auch wenn er noch mit einer Passphrase geschützt ist). Die andere Datei id_rsa.pub enthält deinen öffentlichen Schlüssel. Diesen kann man auf den anderen Rechnern verteilen. Der Inhalt ist zumindestens teilweise Menschenlesbar:

[test@tn .ssh]$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEA2sA2xEE48ouEq+ks2ZY0RVu6v6+tKt2T+3lOz3RVrGjSjpPcDvHgqC0fZkROoXcrxwAp
oQiAUky5n1sZBsDn5Q4JUoKOSzvA/8C2bL8dOfnrdUt89+L38SgIvFAmb7BLfZgtWI4MAZaOvwVgPrwiLCUUb7yKXuV3z2B3
iF6JQ5SMYT+6m+ILjcHo+yyN8Dfr7JbZCbdEw8yaRiM0YVgRtf06/f/nYsFSYk5oJn9bVGF6t6YczJOtW9CH4/eB0vI2O378
nlcOKKZvTfC9/kmlDijskU4QWwZxKF1zrlNRGk7oM1evWxyrnm2Qztu4+mWM4vMTkfKVQQ8/41P0TBjDigS+6Gb16aQueRyg
f6eUP+OnO+WWXGL+bpmAXW+jJs5Rlc7ITUC2ATOoXDEm1SaUs9UDVaMprolmZcxb5sJ3x4xnbx/gFSYvZb2MtPb2c/Vj6rHb
8KJM37WTsd2TDmmQNjv8n7Wy57jj2Tmqs8c3tezigy1HW0CgtRnW3vn/tHGOniGruvsC36B9oWs0x4mcNyzIg2XG0yzZNjoS
CX+YVF3nvGAan4T1Ide8mya4s5goYr1kseW+C9XsxRUdzsCvAwt1IAs6K+3OzsYB9LRWG2omINNNqt5QkkYeRYm75RhbAD53
WFKbLZVaaROc1kJiPfNnXJnY+hi3d4APDwUIN98= test@tn.xxx.de

Diesen Key kann man nun evtl. auch mit anderen auf einem anderen Rechner unter .ssh/authorized_keys2 ablegen. In der Regel wird man dann nach seiner Passphrase des SSH Keys gefragt, nicht mehr nach dem Passwort. Die Passphrase kann man auf seiner Workstation auch permanent in den Speicher laden (was zumindestens Theoretisch natürlich ein Sicherheitsrisiko ist). Dazu beötigt man einen ssh-agent. Diesen startet man folgendermaßen:

[test@tn ~]$ ssh-add .ssh/id_rsa
Enter passphrase for .ssh/id_rsa:
Identity added: .ssh/id_rsa (.ssh/id_rsa)

Ab sofort merkt sich der ssh-agent die Passphrase für einen und mann kann ohne Passwort auf verschiedene Rechner auf denen der Public key abgelegt ist.