Ich habe zwei FreeBSD 9-Hosts und möchte einen Tunnel verwalten, um den durch eine Firewall geschützten Host R von einem hohen Port auf Cloud-Host C aus zu erreichen.
ssh -y -i tunnel_id_rsa -o ConnectTimeout=60 -o ServerAliveInterval=20
-o ServerAliveCountMax=5 -oBatchMode=yes -o ExitOnForwardFailure=yes
-nNR :11432:127.0.0.1:443 [email protected]
Das funktioniert meistens. Aber falls der Port fehlerhaft ist und auf C nicht abgehört werden kann, sehe ich diese Information nicht an den aufrufenden Client auf R zurückgemeldet. Beim Lesen der Dokumentationen und anderer Fragen scheint es, als ob ExitOnForwardFailure dies tun soll. Aber das tut es nicht ... Ich sehe einen Fehler in den Protokollen auf C:error: bind: Address already in use
Und dann habe ich auf RI einfach eine nutzlose, kopflose SSH-Verbindung zu C, die nie abbricht und nie etwas nützt. Ich möchte nur, dass dieser SSH-Prozess abbricht, wenn die Bindung fehlschlägt, damit ich es erneut versuchen kann.
Gibt es etwas anderes, das verhindert, dass Protokollnachrichten zurück zum R gelangen? Etwas, das verhindert, dass ExitOnForwardFailure funktioniert? Ich sehe auch auf stderr auf R nichts über den Fehler, was aufgrund anderer Berichte und Fragen verdächtig erscheint.
(Ich habe versucht, die Optionen -y und -n wegzulassen und ein normales interaktives Passwort ohne Schlüssel zu verwenden ... gleiches Ergebnis.)