Im Wesentlichen passen Sie dazu die persönliche Konfigurationsdatei an (Listing 5). Auf diese Weise haben Sie die volle Kontrolle darüber, wie weit Sie die Waage in die jeweilige Richtung kippen. Für den Inhalt gilt: Rauten leiten Kommentare ein, Einrückungen gestalten die Einträge leserlicher.
Listing 5
# ~/.ssh/config Host host1 User foo HostName host1.example.de ForwardAgent yes ForwardX11 yes ForwardX11Trusted yes User admin IdentityFile ~/.ssh/id_rsa.host1 Host pi User pi HostName raspberrypi.fritz.box ForwardAgent yes ForwardX11 yes ForwardX11Trusted yes IdentityFile ~/.ssh/id_rsa.raspi Host nas User baz IdentityFile ~/.ssh/id_rsa.nas Host * ServerAliveInterval 300 ServerAliveCountMax 3
Die Secure Shell liest die Optionen von der Kommandozeile, wertet die persönliche Konfiguration aus und wendet dann die globale Konfiguration an. Jeder Parameter gilt als gesetzt, wenn er zum ersten Mal verändert wird. Daher stehen in Listing 5 die Host-spezifischen Angaben vor den allgemeinen.
Für die zwei Rechner host1 und raspberrypi kommt die Option ForwardX11 in Kombination mit ForwardX11Trusted zum Einsatz. Damit haben Sie die Möglichkeit, auf dem entfernten System ein Programm mit grafischer Oberfläche zu starten, dessen Ausgabe Sie auf dem lokalen Rechner sehen. Das funktioniert allerdings nur, wenn auf dem lokalen Rechner tatsächlich ein X-Server läuft. Mit der Migration auf Wayland gibt es diese Möglichkeit nicht mehr, denn der moderne X.org-Nachfolger ist nicht mehr netzwerkfähig.
In der Praxis kommt der jeweiligen Zeile IdentityFile eine höhere Bedeutung zu: Damit legen Sie den passenden Schlüssel für den entsprechenden Host fest. Über User und HostName verlagern Sie außerdem weitere Angaben in die Datei, womit sich das Kommando zur Verbindungsaufnahme aus Listing 4 auf ssh pi verkürzt.
Passwortfrei
Die Angabe ForwardAgent deutet auf eine zusätzliche Technik hin, die den Einsatz der Secure Shell vereinfacht: den SSH-Agent. Dabei handelt es sich um einen Daemon, den Sie in der Regel mit Beginn der Session starten, also beim Login auf dem lokalen Rechner, und der in der Folge das Authentifizieren für Sie übernimmt.
Wie Sie den Agent starten, hängt von der eingesetzten Distribution ab. Einfache Window-Manager wie Fluxbox erledigen den Start der Oberfläche und aller Applikationen über ein Skript. In einem solchen Fall fügen Sie diesem die Zeilen aus Listing 6 hinzu. Dabei ersetzen Sie bei Bedarf die Namen der Schlüsseldateien durch die tatsächlich auf dem System vorhandenen.
Listing 6
eval $(ssh-agent -s) [ -f .ssh/id_rsa.host1 ] && ssh-add .ssh/id_rsa.host1 & [ -f .ssh/id_rsa.raspi ] && ssh-add .ssh/id_rsa.raspi &
Das Kommando in der ersten Zeile startet den Agent. Dieser gibt über den Schalter -s seine Umgebungsvariablen im Bash-kompatiblen Format aus. Über eval wertet die Shell diese aus; die nachfolgenden Kommandos, über die Sie die Schlüssel dem Agent hinzufügen, kontaktieren über diese Angaben den Agent.
Um den Vorgang zu testen, geben Sie die Kommandos einfach in ein Terminal ein. Ebenso dürften Sie diese in ein Skript schreiben, das Sie beim Start des Desktops manuell aufrufen.
Haben Sie die Schlüssel mit einem Passwort gesichert (was sich empfiehlt), so fragt der Agent diese Passwörter einmalig ab. In der Shell erscheint dazu ein Prompt; bei grafischen Oberflächen benötigen Sie eines der entsprechenden Programme, das zur eingesetzten Umgebung passt. Listing 7 zeigt das Ergebnis der Suche nach askpass auf einem System mit Arch Linux.
Listing 7
$ pacman -Ss askpass extra/ksshaskpass 5.11.5-1 (plasma) ssh-add helper that uses kwallet and kpassworddialog extra/seahorse 3.20.0+105+gb31e32fe-1 (gnome-extra) GNOME application for managing PGP keys. extra/x11-ssh-askpass 1.2.4.1-5 [Installiert] Lightweight passphrase dialog for SSH community/lxqt-openssh-askpass 0.12.0-1 (lxqt) LXQt openssh password prompt community/openssh-askpass 2.1.0-1 A plasma-like passphrase dialog for ssh
Achten Sie bei der Eingabe darauf, das passende Passwort zum jeweiligen Schlüssel einzugeben. Das erfordert etwas Konzentration, der Lohn liegt aber im Gewinn an Komfort beim praktischen Einsatz.
Genügte nach dem vorigen Schritt bereits ein einfaches ssh pi, um sich mit dem betreffenden Rechner zu verbinden, so brauchen Sie ab jetzt auch kein mehr Passwort mehr einzugeben. Das ermöglicht das Automatisieren von Aufgaben, etwa einen Push zu einem Git-Repository oder ein Backup auf einen entfernten Server.
Mehr Sicherheit
Wer sich auf so viele Automatismen verlässt, der sollte sicherstellen, dass Unbefugte nach dem Start des Desktops keinen Zugriff mehr auf den Rechner bekommen. Gerade die Option ForwardAgent erlaubt es, sich ohne Passwort auf alle weiteren Rechner hinter dem ersten Host zu verbinden, falls auf diesem einer der Schlüssel installiert ist. Die History der Kommandozeile verrät dies möglicherweise ungewollt.





