UUGRN:10 Jahre UUGRN e.V./Vorträge/ssh config

Aus UUGRN
Was ist ssh_config?
Ziel
ein Vortrag über OpenSSHs Client Config Datei ssh_config vor einem Unixpublikum mit grundlegendem Vorwissen zum Thema.

Der Autor[Bearbeiten]

Philipp ph3-der-loewe Schafft, Software Entwickler und langjähriger OpenSSH user.

Abstrakt[Bearbeiten]

Vortrag[Bearbeiten]

Was ist die ssh_config?[Bearbeiten]

(Geplante Zeit: 2 Minuten)


Bei der Datei ssh_config handelt es sich um die Konfiguration des OpenSSH Clients. Sie dient dazu Parameter zu setzen welche das Verbinden mit anderen Rechnern steuern, zum Beispiel das setzen von Port nummern. Sie sollte nicht mit der Datei sshd_config verwechselt werden welche den OpenSSH Server Steuert.

Die Datei findet sich normalerweise im Verzeichnis .ssh im Home-Verzeichnis des Benutzers unter dem Namen config. Es kann aber auch über die Option -F ein anderer Dateiname angegeben werden.

Welche wichtigen Optionen gibt es?[Bearbeiten]

(Geplante Zeit: 5 Minuten)


Es gibt verschiedenste Optionen, die folgende Tabelle stellt die wichtigsten vor.

Option Parameter Beschreibung
ForwardX11 Bool Soll X11 Forwarding Aktive sein?
Compression Bool Soll Kompression verwendet werden?
LocalForward [bind_address:]port:host:hostport Port Forwarding: Lokaler Port wird über Server an Remote Maschine weitergeleitet
RemoteForward [bind_address:]port:host:hostport Port Forwarding: Port auf Server wird an Lokalen Port weiter geleitet
DynamicForward Port Nummer Dynamiches Portforwarding, SSH wird hier zum SOCKS Proxy
IdentityFile Filename Private Key um PublicKey Auth zu machen
User Username Username der an die Gegenseite geschickt wird
Port Port Nummer Port auf dem der Server hört
HostName Hostname Hostname des Servers
BindAddress Hostname Lokale Adresse auf die SSH binden soll.
ProxyCommand Command Befehl der ausgeführt wird um mit dem Server zu reden.

Host Profile[Bearbeiten]

(Geplante Zeit: 5 Minuten)


Master mode[Bearbeiten]

(Geplante Zeit: 3 Minuten)


Der Master Mode ermöglicht es durch eine physikalische verbindung weitere logische SSH Verbindungen auf zu bauen. Dazu wird eine SSH Verbindung als Master gestartet. Weitere SSH Verbindungen zum selben Host mit selbem User auf der Gegenseite können nun die Verbindung mit nutzen und brauchen keine neue, eigene physikalische Verbindung aufbauen.

Der Slave verbindet in diesem falle mittels UNIX Socket auf den Master anstatt auf den Server auf der Gegenseite. Hierzu muss ein entsprechender Master Socket angegeben werden. Siehe hierzu das Beispiel.

Vor- und Nachteile[Bearbeiten]

Die Vorteile hiervon sind:

  • Schneller Verbindungsaufbau

Die Nachteile:

  • Die Master Sitzung muss bestehen bleiben bis alle Slave Verbindungen abgebaut sind

Config Beispiel[Bearbeiten]

ControlPath ~/.ssh/masters/ssh-Control-%r@%h:%p
ControlMaster auto

In diesem Beispiel wird von ssh im Pfad %r, %h und %p ersetzt. Diese werden entsprechend durch Remote Username, Hostname und Port ersetzt.

Der Parameter auto der Option ControlMaster gibt an das eine Neue Verbindung dann zum Master wird wenn kein anderer aktuell für diese Verbindung existiert und falls einer existiert zum Slave wird.

Ausblicke[Bearbeiten]

(Geplante Zeit: ??? Minuten)

Fragen[Bearbeiten]

  • immer gerne