Benutzen ProxyCommand
Siehe man ssh_config
. Ich empfehle, davon Gebrauch zu machen ProxyCommand
. Nehmen wir Ihr ursprüngliches Szenario:
- Computer A (Ihr Computer)
- Computer B (ein Proxy-Hostname)
- Computer C (nur über SSH von Computer B aus erreichbar)
Bearbeiten Sie ~/.ssh/config
mit den folgenden Inhalten.
Host computerb
HostName <hostname or IP of Computer B>
Host computerc 192.168.35.*
ProxyCommand ssh computerb nc -w 180 %h %p
Jetzt können Sie Computer C transparent erreichen
ssh computerc
Vorteile dieser Methode
Sicherer
Sie benötigen nur Ihren privaten Schlüssel, um sich auf Computer A (Ihrem Computer) zu befinden. Der nc
Befehl fungiert als Proxy, in dem SSH den Datenverkehr verschlüsselt. Dies beinhaltet die Authentifizierung. Es ist eine sehr schlechte Idee, Ihren privaten Schlüssel auf mehrere Server zu verteilen (da jeder gefährdete Server mit Ihrem privaten Schlüssel letztendlich Ihren privaten Schlüssel gefährdet).
Entspricht mehreren Zielen
Man kann mehrere Zielcomputer mit abgleichen Host
. Ein einzelner Computer oder ein beliebiger Computer innerhalb eines bestimmten Netzwerks (z. B. 192.168.35.0/24
im obigen Beispiel) als Proxy über Computer B. Er dient auch als Alias.
ssh 192.168.35.27
Im obigen Beispiel wird ein Proxy über Computer B ausgeführt, um zur IP-Adresse zu gelangen.
Daisy-Chain-Proxys
Mit dieser Methode können Sie so viele automatische Proxys wie nötig verketten. Sie können beispielsweise einen Computer D hinzufügen, der nur von Computer C aus erreichbar ist und transparent funktioniert.
Host computerd
ProxyCommand ssh computerc nc -w 180 %h %p
ssh computerd
In den obigen ssh_config
Beispielen wird automatisch ein Proxy über Computer C und Computer B ausgeführt .