====== Server-zu-Server: SSH-Key in Linux generieren und auf entfernten Server ablegen ======
In diesem Beispiel wird gezeigt, wie ein SSH-Key erstellt und auf einen entfernten Server abgelegt wird, um eine automatische Server-zu-Server-Verbindung (z. B. durch einen Cronjob) herstellen zu können.
Wenn der SSH-Key für den Benutzer "root" angelegt werden soll muss zunächst mit "su" und dem Administrator-Passwort der aktuelle Benutzer gewechselt werden.
Wir navigieren in das .ssh-Verzeichnis, erstellen hier einen SSH-Key und kopieren diesen auf den entfernten Server, mit dem wir uns zukünftig automatisch verbinden wollen. Anders, als bei SSH-Keys, den wir dritten zum Login zu Verfügung stellen wolle (z. B. für den Zugriff auf ein Git-Repository) verzichten wir hier auf die Eingabe einer Passphrase, indem wir die Frage einfach mit der [ENTER]-Taste leer lassen.
$ su
$ Passwort: [Administratorpasswort]
$ cd /root/.ssh
$ ssh-keygen -b 4096
$ Enter file in which to save the key: (/root/.ssh/id_rsa): [ENTER]
$ Enter passphrase (empty for no passphrase): [ENTER]
$ Enter same passphrase again: [ENTER]
$ ssh-copy-id -i [Name des Schlüssels] [benutzername]@[Domain oder ip-Adresse]
Für den Login muss anschließend nach der Aufforderung das Passwort für den entfernten Server eingegeben werden. Dann wird der Public-Key zum entfernten Server übertragen und dort gespeichert. Anschließend muss der neue SSH-Key im SSH-Agent hinzugefügt werden, damit der Cronjob die SSH-Verbindung zukünftig selbständig aufbauen kann:
$ eval $(ssh-agent)
$ ssh-add [Name des Schlüssels]