Aus Raspberry Pi Geek 06/2018

Secure Shell mit Komfort (Seite 2)

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.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben