Wenn ich eine Remote-Portweiterleitung durchführe, a la, -R 3690:localhost:3690
wenn bereits eine Bindung für den Port auf dem Remote-Host vorhanden ist, wird folgende Warnung angezeigt:
Warning: remote port forwarding failed for listen port 3690
Gibt es eine Möglichkeit, ssh fehlschlagen zu lassen (dh mit einem Rückkehrcode ungleich Null zu beenden), anstatt nur eine Warnung auszugeben?
ssh
port-forwarding
exit-code
Matt Joiner
quelle
quelle
Antworten:
Lauf
oder setzen
in
~/.ssh/config
. Sieheman ssh_config
für weitere Einzelheiten.quelle
bind_address
ssh möglicherweise immer noch nicht fehlschlägt , wenn Sie das nicht explizit angeben . Wenn beispielsweise ein anderer Benutzer bereits IPv6-localhost[::1]:3690
abhört, bindet ssh möglicherweise nur IPv4127.0.0.1:3690
und beschwert sich nicht. Aber Ihr svn-Client würde wahrscheinlich den ipv6-Socket (des Angreifers) vorziehen. Um sicher zu gehen, besser verwenden-R [::1]:3690:localhost:3690 -R 127.0.0.1:3690:localhost:3690
Ich verwende ein Bash-Skript auf dem Ziel-Host, um sicherzustellen, dass die Weiterleitung korrekt geöffnet wurde. Die SSH-Verbindung wird ausgeführt und beendet, wenn ein Problem mit der Portweiterleitung vorliegt, z
clientseitiges Skript: (verwendet .ssh / config für die Einstellungen der Portweiterleitung)
serverseitiges Skript (bin / sshloop.sh)
Führen Sie möglicherweise sogar das clientseitige Skript unter screen mit -dmS aus
quelle