web-dev-qa-db-ja.com

sshトンネリング時のnetcatの「-wtimeout」オプションの目的は何ですか?

私は投稿した人とまったく同じ状況にあります 別の質問 、ゲートウェイに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エラーが発生するのはなぜですか?それを省略することの害は何ですか?

4
jrdioko

元のソリューションでのその-w 3の目的は何ですか

ncセッションが不適切に閉じられたときに、孤立したsshプロセスがリモートホストで実行されたままになるのを回避します。

使用するとBroken pipeエラーが発生するのはなぜですか?

ncのタイムアウトを90に増やし、ServerAliveIntervalを30に設定して、問題が解決するかどうかを確認してください。

Host foo
    User webby
    ServerAliveInterval 30
    ProxyCommand ssh a nc -w 90 %h %p
5
quanta