Wer etwas häufiger mit SSH (Secure Shell) auf unterschiedlichen Systemen arbeitet wird schnell feststellen, dass es nervig wird jedes mal die komplette Kommandozeile in die Shell einzugeben. Meist sehen einfache Kommandozeilen wie folgt aus:
ssh foo@bar.server.com
Nicht so schwierig, allerdings wird es nervig, wenn man den entsprechenden Server nur per IP Adresse ansprechen kann und viele weiter Optionen verwenden möchte um z.B. die Art der Anmeldung zu definieren oder etwas schwierigere Aufgaben wie SSH Tunneling zu verwenden.
SSH bietet hierfür jedoch eine sehr einfache Lösung um den Aufwand etwas zu verringern, nämlich die Dateien ~/.ssh/config sowie das globale Gegenstück, welches bei Ubuntu unter /etc/ssh/ssh_config liegt. In diesen können Verbindungskonfigurationen abgelegt werden. So können z.B. Synonyme für bestimme Konfigurationen festgelegt werden die dann anstelle der gesamten Parameterliste verwendet werden können. Eine mögliche Konfiguration könnte wie folgt aussehen:
Host Bar Hostname bar.server.com User foo RSAAuthentication yes PasswordAuthentication no
Dieser Konfigurationsblock erstellt das Synonym Bar. Die Optionen beschreiben den Verbindungsaufbau zum Server bar.server.com als Benutzer foo und es soll eine Public Key Authentisierung verwendet werden. Aufgerufen werden kann das ganze dann einfach mit:
ssh Bar
Das ganze funktioniert auch mit Autocompletion, was eine Vervollständigung mit der Tabulatortaste ermöglicht. Neben der einfachen Anmeldung verwende ich diese Methode um meinen Server als SOCKS-Proxy zu verwenden. Dazu kann man die folgende Konfiguration verwenden:
Host Bar-Proxy HostName bar.server.com User foo RSAAuthentication yes PasswordAuthentication no DynamicForward 4321
Wobei nun localhost:4321 von Anwendungen wie Browsern als Proxy verwendet werden kann, was den gesamten Traffic über den Server leitet. Weitere Optionen die verwendet werden können findet man in der Manpage ssh_config.