Назад | Перейти на главную страницу

SSH RemoteForward уведомляет клиента об ошибке

Я использую 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.