Verbindungseinstellungen für OpenSSH speichern
Wie lassen sich die Einstellungen für SSH-Verbindungen mit OpenSSH dauerhaft speichern? Ich habe Zugänge zu verschiedenen SSH-Servern, deren Port-Nummern nicht dem Standard entsprechen. Außerdem sind auf einem Server X11-Programme installiert, die ich nutzen möchte. Ein anderer stellt eine MySQL-Datenbank bereit, die allerdings nur über localhost, also nicht über das Netzwerk erreichbar ist. Die Port-Umleitung sollte daher auch abgespeichert werden können. Eine Eingabe wie ssh -X -L 8888:localhost:3306 -C -p 3456 username@sshserver ist mir einfach zu lang.
- Reiko Kaps
Wie lassen sich die Einstellungen für SSH-Verbindungen mit OpenSSH dauerhaft speichern? Ich habe Zugänge zu verschiedenen SSH-Servern, deren Port-Nummern nicht dem Standard entsprechen. Außerdem sind auf einem Server X11-Programme installiert, die ich nutzen möchte. Ein anderer stellt eine MySQL-Datenbank bereit, die allerdings nur über localhost, also nicht über das Netzwerk erreichbar ist. Die Port-Umleitung sollte daher auch abgespeichert werden können. Eine Eingabe wie ssh -X -L 8888:localhost:3306 -C -p 3456 username@sshserver ist mir einfach zu lang.
OpenSSH, das auf verschiedenen Unix-Derivaten, Linux und Mac OS X sowie via Cygwin auch auf Windows läuft, speichert derartige Einstellungen in der Datei ~/.ssh/config im Heimatverzeichnis des jeweiligen Benutzers. Die Einstellungen für eine bestimmte SSH-Verbindung beginnen mit dem Eintrag Host Verbindungsname. Vorgaben, die für alle SSH-Zugänge gelten, beginnen mit dem Eintrag Host * oder Host ?.
# globale Einstellungen, hier Kompression der
# Verbindung
Host *
Compression yes
CompressionLevel 9
# nur für diesen Server
Host Verbindungsname
HostName ssh.server.name
User ssh-nutzer
Port 3456
LocalForward 8888:localhost:3306
ForwardX11 yes
Anschließend belegen die Einträge HostName, User und Port beispielsweise den Servernamen beziehungsweise die IP-Adresse, den Benutzernamen und die Portnummer für die SSH-Verbindung vor. Setzt man hier den Wert ForwardX11 yes wird auch das X11-Forwarding eingeschaltet und grafische Unix-Programme können auf dem Desktop angezeigt werden.
Der Eintrag LocalForward 8888:localhost:3306 biegt den Standard-Port eines MySQL-Servers auf den lokalen Port 8888 des Rechners um, der die SSH-Verbindung aufgebaut hat. Gleichzeitig werden damit die übertragenen Daten durch den verschlüsselten Kanal auf die so genannte Loopback-Schnittstelle des Rechners getunnelt. Damit ist dieser Port nicht über das Netz für fremde Rechner zugänglich; der Parameter GatewayPorts, der per Vorgabe ausgeschaltet ist, kann dieses Verhalten allerdings ändern. Jedoch ist es sicherer, die Ports ausdrücklich an vorhandene Netzwerkadressen zu binden und so den Netzwerkzugriff zu erlauben.
Der Eintrag LocalForward 192.168.1.1:8888:localhost:3306 bindet den Port 8888 an die Netzwerkschnittstelle mit der Adresse 192.168.1.1 und macht damit beispielsweise den MySQL-Server, der eigentlich im Rechenzentrum steht, im lokalen Netz zugänglich. Die gespeicherten Verbindungen ruft man nun einfach mit ssh Verbindungsname auf, weitere Informationen finden sich in der Manualpage von ssh_config (siehe Soft-Link), die zahlreiche Erklärungen zu den einzelnen Parametern von ssh bereithält.