Jeśli wykonam przekierowanie portu zdalnego, a la, -R 3690:localhost:3690
gdy już istnieje powiązanie na porcie na hoście zdalnym , pojawia się następujące ostrzeżenie:
Warning: remote port forwarding failed for listen port 3690
Czy istnieje sposób, aby ssh się nie powiódł (tzn. Wyjść z niezerowym kodem powrotu), zamiast po prostu emitować ostrzeżenie?
ssh
port-forwarding
exit-code
Matt Joiner
źródło
źródło
Odpowiedzi:
Biegać
lub umieścić
w
~/.ssh/config
. Zobaczman ssh_config
szczegóły.źródło
bind_address
ssh może nadal nie zawieść. Na przykład, jeśli inny użytkownik już nasłuchuje na lokalnym hoście ipv6,[::1]:3690
ssh może powiązać tylko ipv4127.0.0.1:3690
i nie narzeka. Ale twój klient svn prawdopodobnie wolałby gniazdo ipv6 (atakującego). Aby być bezpiecznym, lepiej używać-R [::1]:3690:localhost:3690 -R 127.0.0.1:3690:localhost:3690
Używam skryptu bash na hoście docelowym, aby upewnić się, że przekazywanie zostało poprawnie otwarte. Połączenie SSH uruchomi to i zakończy działanie, jeśli wystąpi problem z przekierowaniem portów, np
skrypt po stronie klienta: (używa ustawień .ssh / config do ustawień przekierowania portów)
skrypt po stronie serwera (bin / sshloop.sh)
Może nawet uruchom skrypt po stronie klienta pod ekranem za pomocą -dmS
źródło