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

Какова цель опции netcat «-w timeout» при туннелировании ssh?

Я нахожусь в той же ситуации, что и человек, отправивший Другой вопрос, Я пытаюсь туннелировать ssh-соединения через сервер шлюза вместо того, чтобы использовать ssh в шлюз и вручную снова ssh на целевой сервер оттуда. Я пытаюсь настроить решение, указанное в принятом ответе, ~/.ssh/config это включает:

host foo
  User webby
  ProxyCommand ssh a nc -w 3 %h %p

host a
  User johndoe

Однако когда я пытаюсь ssh foo, мое соединение остается активным в течение 3 секунд, а затем умирает с Write failed: Broken pipe ошибка. Удаление -w 3 вариант решает проблему. Какова цель этого -w 3 в исходном решении, и почему это вызывает Broken pipe ошибка при использовании? Что плохого в том, чтобы его пропустить?

Какова цель этого -w 3 в исходном решении

Не оставляет сиротами nc процессы, запущенные на удаленном хосте, когда ssh сессия закрыта неправильно.

и почему это вызывает Broken pipe ошибка при использовании?

Попробуйте увеличить тайм-аут на nc до 90 и установка ServerAliveInterval до 30, чтобы увидеть, исчезнет ли ваша проблема:

host foo
    User webby
    ServerAliveInterval 30
    ProxyCommand ssh a nc -w 90 %h %p