Die Secure Shell oder SSH bezeichnet sowohl ein Netzwerkprotokoll als auch die entsprechendenProgramme, mit deren Hilfe man auf eine sichere Art und Weise eine verschlüsselte Netzwerkverbindung mit einem entfernten Gerät herstellen kann.
Man verwendet diese Methode, wenn man sich auf eine entfernte Kommandozeile sozusagen auf den lokalen Rechner holen will. Damit werden auf der lokalen Konsole die Ausgaben der entfernten Konsole ausgegeben und die lokalen Tastatureingaben an den entfernten Rechner übergeben.
Da ein Administrator sich pro Tag unzählige Male remote auf anderen Hosts einloggen muss, ist es mit Arbeitserleichterung verbunden, wenn man nicht jedes Mal das Passwort eingeben muss, sondern sich der die Verbindung aufbauende Rechner sich mit dem Schlüssel des lokalen Anwenders authentifiziert.
Dazu erzeugen wir ein Schlüsselpaar (bis Debian "Jessie")
ssh-keygen -t dsa
oder
ssh-keygen -t rsa
Ab Debian "Stretch" wird empfohlen DSA-Keypairs nicht mehr zu verwenden, sondern die sicheren ECDSA-Keypairs zu generieren.
ssh-keygen -t ECDSA
Man wird zwar nach einer Passworteingabe gefragt, die kann man aber unterlassen, wenn den Weg ohne Passwort hier gehen will.
Diese Schlüssel werden im Home-Verzeichnis unter .ssh/id_ecdsa.pub respektive .ssh/id_dsa.pub oder .ssh/id_rsa.pub abgelegt.
Jetzt können wir ihn auf das gewünschte Remotesystem portieren:
ssh-copy-id -p PORT -i ~/.ssh/id_ecdsa.pub user@remote-system
Das ist das Werkzeug der Wahl. Sollte es nicht zur Verfügung stehen, dann funktioniert auch diese Vorgehensweise,
cat ~/.ssh/*.pub | ssh -p Port user@remote-system 'umask 077; cat >>.ssh/authorized_keys'
Anschließend müsste der ssh-Login an dem Remotesystem ohne Passwortabfrage erfolgen.