Transparenter SSH-Proxy
Wenn man eine Handvoll Unix-Systeme zu administrieren hat, arbeitet man meist über einen Jumphost, wobei die nachgelagerten Rechner nur über diesen erreichbar sind. Das gibt zwar Sicherheit, erweist sich aber schnell als umständlich, wenn man oft einloggt oder Dateien auf die lokale Workstation kopiert. Dazu zwei Tricks, die ich mir aus dem Internet gesammelt habe:
One-Hop Login mit Agent Forwarding
Wie man den SSH-Agent konfiguriert, hatte ich schon
beschrieben.
Auf meinem Mac ist dieser Agent ohnehin schon komfortabel über den
Schlüsselbund gestartet. Ich habe mir folgende Funktion in meiner
.profile
definiert:
function sssh() {
HOST=$1
ssh -A -t tunnelhost ssh -t -A $HOST
}
Nun kann ich mit einem schnellen sssh v-web1
direkt auf einen der
Zielhosts einloggen. Es gibt andere Methoden mit
Netcat;
dieses Programm ist aber aus Sicherheitsüberlegungen meist nicht auf
Jumphosts installiert.
SCP mit LocalForward
Sicher kann man mit komplizierten
Tar-Befehlen
Dateien zwischen Rechnern verschieben. Wenn man nur mit wenigen Hosts
Dateien austauschen will, kann man über die .ssh/config
Forwarder
einrichten, wie im folgenden Beispiel:
Host tunnelhost
Hostname tunnelhost.example.org
LocalForward 8020 v-web1:22
User bart
Host v-web1
HostName localhost
Port 8020
ForwardX11 yes
User bart
Zunächst muss ein Terminalfenster ein SSH-Verbindung auf den Tunnelhost
geöffnet werden; dieses Fenster bleibt offen. In einem zweiten Terminal
wird dann der Kopiervorgang durchgeführt, so als gäbe es eine direkte
Verbindung zu dem Host v-web1
.
Natürlich kann man mit der zweiten Methode auch direkt auf die Hosts "Sshen", dafür muss allerdings jeder Host in der Konfiguration eingetragen sein und man opfert für jeden einen Port. Es führen offenbar viele Wege zu mehr Komfort; der geneigte Administrator wird den für sich richtigen abwägen.