У меня есть сценарий bash с использованием ssh для удаленного доступа, так что я могу войти в систему, на которой запущен скрипт. Я использую скрипт, потому что периодически сеть нуждается в каком-то ауте. Если ssh не удастся, я повторю попытку. Сценарий в основном это:Почему ssh не выходит из строя при удаленной прямой ошибке?
while [ 1 ]; do
authentication
ssh -N -v -R 9999:localhost:22 [email protected]$remote_ip
done
Проблема заключается в SSH не выходит при удаленной передней неудачи, как показано ниже:
debug1: Remote: Forwarding listen address "localhost" overridden by server GatewayPorts
debug1: remote forward failure for: listen 9999, connect localhost:22
Warning: remote port forwarding failed for listen port 9999
debug1: All remote forwarding requests processed
Неудача из-за этого:
debug1: server_input_global_request: tcpip-forward listen localhost port 9999
debug1: Local forwarding listening on 0.0.0.0 port 9999.
bind: Address already in use
channel_setup_fwd_listener: cannot listen to port: 9999
предыдущая сессия еще не завершена, и порт используется.
Есть ли способ проверить, успешно ли ssh или нет? И как программист, я действительно не могу понять, почему он разработан таким образом. В чем смысл этого дизайна?