Я использую SSH для перенаправления порта с удаленного компьютера (клиента) на другой компьютер (сервер), используя (~/.ssh/config
)
Хост-клиент:
Hostname {ip}
...
RemoteForward localhost:{port} localhost:{port}
Проблема в том, что даже если на сервере нет ни одного прослушивающего устройства, клиент может успешно подключиться к localhost:port
. Единственным признаком сбоя является сообщение на сервере: connect_to localhost port {port}: failed.
Есть ли способ передать эту ошибку клиенту и разорвать соединение?
Если sshd не может установить соединение, указанное вашим LocalForward, ваше соединение с локальным портом будет немедленно закрыто. Ваш sshd плохо себя ведет, если этого не делает.
Вот что со мной происходит:
Терминал 1:
dennis@lightning:~$ ssh -L 1111:localhost:1112 camel
Last login: Tue Jan 29 00:05:28 2013 from lightning.home.kaarsemaker.net
[dkaarsemaker@camel ~]$ channel 3: open failed: connect failed: Connection refused
channel 3: open failed: connect failed: Connection refused
Сообщения об ошибках печатаются всякий раз, когда я пытаюсь подключиться к терминалу 2.
Терминал 2:
dennis@lightning:~$ telnet localhost 1111
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.
И я вижу, что неправильно прочитал вопрос, поскольку вы используете RemoteForward. Хотя для меня это имеет аналогичный результат, немедленное отключение:
dennis@lightning:~$ ssh -R 1111:localhost:1112 camel.ams6.corp.booking.com
Last login: Sun Feb 3 11:43:07 2013 from lightning.home.kaarsemaker.net
[dkaarsemaker@camel ~]$ telnet localhost 1111
Trying 127.0.0.1...
connect_to localhost port 1112: failed.
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
Connection closed by foreign host.