Hin- und wieder ist es sinnvoll oder zumindest praktisch, wenn ein Rechner auf den anderen automatisch ohne Benutzerinteraktion zugreifen kann via SSH z. B.: um mithilfe von Rsync Daten zu Backupzwecken synchron halten zu können.
Auch wenn es sehr verführerrisch erscheint, sollte man unter keinen Umständen root-zu-root Vertrauen zwischen 2 Rechnern aufbauen, denn wird einer kompromittiert, hat der Angreifer automatisch auch Zugriffsrechte auf den anderen Host und somit Zugriff auf z. B. den Backupdatenbestand, was dann wiederum für den Angreifer sehr verführerrisch ist
Ich gehe in diesem Kurztutorial davon aus, dass auf beiden Seiten OpenSSH benutzt wird, wie ihn die meisten Linux-Derivate standardmäßig mitliefern und sowohl SSHv1 und SSHv2 beherrscht, wovon SSHv2 nätürlich die präferierte Wahl darstellt. Das .ssh Verzeichnis sollte sich normalerweise bereits im Home-Verzeichnis jedes Users befinden, ansonsten wird es mit den ersten 2 Zeilen angelegt und der Zugriff darauf nur dem betreffenden User erlaubt.
Der private Key kann selbstverständlich auch zusätzlich noch mit einer passphrase geschützt werden, was wir hier aber nicht machen wollen, da der Rechner ja automatisch (via Script etc.) Zugriff erlangen soll, somit lassen wir das Feld bei der Eingabe einfach leer.
client$ mkdir ~/.ssh client$ chmod 700 ~/.ssh client$ ssh-keygen -q -f ~/.ssh/id_rsa -t rsa Enter passphrase (empty for no passphrase): Enter same passphrase again:
Damit wäre die Key-Erstellung soweit fertig und es sind die beiden Dateien id_rsa und id_rsa.pub entstanden. Jetzt muss der Public Key (.pub) auf das Zielsystem transferiert werden. Da dieser (ohne Passphrase) vergleichbar mit dem Passwort ist, also alleine den Zugriff auf das Zielsystem ermöglicht, sollte dieser natürlich über einen sicheren Kanal – z. B. scp oder WinSCP – und keinesfalls über FTP o. ä. übertragen werden.
Auf dem Zielsystem den Inhalt der Datei id_rsa.pub nach ~/.ssh/authorized_keys kopieren. Dabei jeden Schlüssel in eine eigene Zeile:
server$ mkdir ~/.ssh server$ chmod 700 ~/.ssh server$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys server$ chmod 600 ~/.ssh/authorized_keys server$ rm ~/id_rsa.pub
Auch hierbei wieder auf alleinige Leserechte für den bestimmten User achten, danach, kann id_rsa.pub wieder gelöscht werden.
Für etwas mehr pseudo-Sicherheit, kann man vor den Schlüssel in der authorized_keys Datei noch angeben, von wo man sich hiermit verbinden darf:
from="*.example.org"
In der from= Zeile darf eine IP-Adresse oder ein Hostname angegeben werden. Wildcards werden auch ausgewertet.
hehe, wieder was dazu gelernt
Hatte als Infoquelle jedenfalls nicht die MAN Page, sondern diverse Internetseiten zu Rate gezogen
man ssh-copy-id