Ist es möglich, OpenSSH zu verwenden, um an andere SSH-fähige Geräte wie Router-Switches usw. weiterzuleiten? Wenn dies möglich ist, ohne eine maßgeschneiderte Anwendung unter Linux zu erstellen, um dies zu tun?
Vielen Dank
Sicher; Verwenden Sie einfach SSH-Port-Weiterleitung / Tunneling. Starten Sie eine SSH-Verbindung zum "Proxy" -Computer mit dem folgenden Befehl:
ssh -L$LOCALPORT:$REMOTEHOST:$SSHPORT $PROXYHOST
$PROXYHOST
: Der Computer, auf den Sie SSH-Zugriff haben$REMOTEHOST
: die Maschine, mit der $ PROXYHOST eine Verbindung herstellen kann, die Sie jedoch nicht können. Verwenden Sie einen Hostnamen oder eine IP-Adresse, $PROXYHOST
mit der auf den Computer verwiesen werden kann$SSHPORT
: der Port, auf den sshd auf remotehost wartet; höchstwahrscheinlich 22$LOCALPORT
: Der lokale ausgehende Port SSH wird auf Ihrem lokalen Computer geöffnet, der an Port 22 weiterleitet $REMOTEHOST
Lassen Sie diese Verbindung offen, damit der Tunnel funktioniert. Möglicherweise möchten Sie -N
dem Befehl auch etwas hinzufügen , damit diese Verbindung keine Remote-Shell aufruft und Sie sie später nicht versehentlich schließen.
Gehen Sie nach dem Aufbau des Tunnels wie folgt vor:
ssh -p $LOCALPORT localhost
Dadurch wird versucht, eine SSH-Verbindung zu Ihrem lokalen Computer an dem Port herzustellen, der an den $REMOTEHOST
SSH-Port des Computers weitergeleitet wird .
Wenn Sie bereit sind, die Konfiguration auf Ihrem Client zu aktualisieren, können Sie Ihren Client so einrichten, dass Ihre Gateway-Box als Proxy verwendet wird . Auf Ihrer Relay-Box muss netcat installiert sein. Um die besten Ergebnisse zu erzielen, sollten Sie eine schlüsselbasierte Authentifizierung einrichten.
Folgendes verwende ich in meiner .ssh / config, um eine Verbindung über einen anderen Host herzustellen.
Host internal-ssh-host-proxy
ProxyCommand /usr/bin/ssh username@ssh-relay-host "/bin/netcat -w 1 internal-ssh-host 22"
Mit dem oben genannten können Sie einfach den Befehl ssh internal-ssh-host-proxy von Ihrem Client-Computer ausführen .
Wenn der Proxy-SSH-Host über den OpenSSH-Client 5.4 oder höher verfügt, benötigen Sie kein Netcat. Stattdessen können Sie den integrierten Netcat-Modus verwenden.
Host internal-ssh-host-proxy
ProxyCommand /usr/bin/ssh username@ssh-relay-host -W internal-ssh-host:22
Von den vorgestellten Antworten ist Zordache die beste Gesamtlösung. Wenn Sie jedoch für die Nachwelt einfach eine Ad-hoc-Verbindung herstellen möchten, ohne Ihre Konfiguration zu bearbeiten, verwenden Sie das
-t
Flag, um ein Pseudo-Terminal zuzuweisen und ssh direkt auf dem Relay auszuführen.quelle
Sie können Verbindungen mit OpenSSH automatisch weiterleiten. In Ihrer
~/.ssh/authorized_keys
Datei können Sie einen auszuführenden Befehl angeben, der eine SSH für einen zweiten Computer sein kann.Am Ende werden zwei Eingabeaufforderungen angezeigt
Password:
: eine für den Relay-Server und eine für den Zielserver. Sie können dieses Verhalten jederzeit mithilfe von Zertifikaten entfernen.quelle