Manchmal ist die Möglichkeit eines SSH-Logins ohne ständiges Eintippen eines Passworts ganz nützlich. Aber auch gefährlich. Darauf gehe ich hier jetzt aber nicht ein, dazu gibt es genug Matrial im Netz.
Auf dem eigenen Linux-Rechner folgendes ausführen.
ssh-keygen -t dsa Enter passphrase (empty for no passphrase): Kein Passwort angeben! Enter same passphrase again: Weiter mit ENTER, kein Passwort angeben!
Die Keys id_dsa
(private) und id_dsa.pub
(public) werden erstellt, normalerweise im eigenen Homedirectory unter ~/.ssh
abgelegt.
Als nächstes muss der public key auf den Server (Zielrechner) kopiert werden.
scp id_dsa.pub username@zielrechner:~/.ssh
Nun auf den Zielrechner wechseln für die nächsten Schritte. Im Verzeichnis .ssh
sollte nun die Datei id_dsa.pub
liegen. Der Inhalt der Datei id_dsa.pub
muss nun in die, vermutlich bereits vorhandene, Datei authorized_keys
eingefügt werden. Falls die Datei authorized_keys
nicht existiert, kann auch die Datei id_dsa.pub
einfach in authorized_keys
umbenannt werden.
ssh username@zielrechner cd .ssh cat id_dsa.pub >> authorized_keys
Eine letzte Kontrolle vor dem Verlassen des Zielrechners ist noch nötig. Der Ordner .ssh
sollte die Rechte drwx------
besitzen, falls nicht muss man dies jetzt noch anpassen. Ebenfalls kontrollieren sollte man die Datei authorized_keys
welche nur -rw-------
als Rechte besitzen sollte. Falls hier andere Rechte verteilt wurden, kann dies zu Fehlern führen. Nicht jede Version von OpenSSH akzeptiert hier zu grosszügige Rechte.
Die SSH-Verbindung zum Zielrechner kann nun beendet werden.
Nun kann man vom eigenen Linux-Rechner aus die passwortlose Verbindung testen.
ssh username@zielrechner
Hier sollte nun sofort eine Verbindung zum Zielrechner aufgebaut werden, ohne dass nach dem Passwort gefragt wird.
Ebenfalls testen kann man dies natürlich noch durch kopieren einer Testdatei per scp.
scp username@zielrechner:~/test.file . test.file 100% 9065 8.9KB/s 00:00
Alles OK, somit kann dies nun für die automatisierte Abarbeitung genutzt werden.