s sh переадресация портов с разделением соединения - PullRequest
0 голосов
/ 21 апреля 2020

Я хочу создать переадресацию портов с помощью опции ssh -L. У меня проблема в том, что я использую общий доступ к удаленному хосту. Поэтому в зависимости от того, имеется ли уже соединение, предоставляющее мастер, мне нужно либо

ssh -O forward -L ... $remotehost

(если мастер уже есть), либо

ssh -N -L ... $remotehost

. Я мог бы использовать что-то вроде:

if ssh -O check $remotehost 2>/dev/null; then
    ssh -O forward -L ... $remotehost
else
    ssh -N -L ... $remotehost
fi

, но это просто, и из кода C было бы проще, если бы была опция, которая заставляет ssh автоматически запускать мастер, если его еще нет. Для «обычных» вызовов вы можете использовать -o "ControlMaster auto", но здесь это не так. Однако я не могу найти такую ​​опцию в документации и задаюсь вопросом, пропустил ли я что-то.

Итак, мой вопрос: есть ли команда catch-all, которая добавляет порт вперед независимо от настроек мультиплексирования команд, это может даже работать, если мультиплексирование вообще не включено.

ssh -N -L ... $remotehost, похоже, вообще ничего не делает, если используется уже установленное соединение. Это ошибка?

(Конечно, ssh -S none -N -L ... $remotehost работает, но очевидным недостатком является то, что, возможно, уже существующее соединение не используется).

1 Ответ

0 голосов
/ 21 апреля 2020

Кажется, что это было старое знание, ssh -N -L ... $remotehost правильно делает в моей настройке. Вероятно, исправлена, так как я проверял эту проблему в последний раз ... Нет баллов за "хорошо изученный вопрос": -)

Проверка журнала изменений открытий sh Я не нашел упомянутой проблемы упомянутой.

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