Зная, была ли успешна переадресация удаленного порта? - PullRequest
5 голосов
/ 15 декабря 2011

Я пытаюсь настроить некоторые обратные туннели ssh, чтобы я мог получить доступ к своей домашней сети, отскочив от какого-либо сервера с общедоступным IP-адресом.

Когда я запускаю эту команду: ssh -R: [port_XX]: localhost: 22 some_user @ my_server

Даже если используется «port_XX», он все равно выполнит успешное ssh-соединение с «my_server».

Если я запускаю эту команду напрямую, я вижу проблему, когда она выдает мне предупреждение: «Внимание: сбой переадресации удаленного порта для прослушивающего порта [port_XX]»

Однако я запускаю этот ssh-сеанс внутри экранного сеанса , используя задание cron.

Как программно проверить, была ли успешной переадресация удаленного порта?

Сеанс экрана можно проверить с помощью "screen -ls", сеанс ssh также легко проверить, но переадресация удаленного порта ...?

(Пожалуйста, дайте мне знать, если этот вопрос недостаточно ясен! Я провел исследование, но не нашел простого решения.)

1 Ответ

8 голосов
/ 15 декабря 2011

Попробуйте добавить -o ExitOnForwardFailure=yes

Полная команда будет выглядеть примерно так:

ssh -N -R [port_XX]:localhost:22 -o ExitOnForwardFailure=yes user@host

(-N полезно просто перенаправить порт, не открывая удаленную оболочку; вы можететакже добавьте -f для отправки процесса в фоновом режиме, не нужно, если вы работаете под экраном, хотя ..)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...