当ssh隧道时,netcat的“-w timeout”选项的目的是什么?

我和发布另一个问题的人的情况完全相同,我试图通过网关服务器隧道SSH连接,而不是必须ssh进入网关,并从那里再次手动ssh到目标服务器。 我正在尝试设置在接受的答案中给出的解决scheme, ~/.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选项可以解决问题。 在原来的解决scheme中, -w 3的目的是什么?为什么当我使用它时,会导致Broken pipe错误? 省略它有什么害处?

在原来的解决scheme中, -w 3的目的是什么?

ssh会话closures不当时,它避免了在远程主机上运行孤立的nc进程。

为什么当我使用它时会导致Broken pipe故障错误?

尝试增加nc的超时为90,并将ServerAliveInterval设置为30,以查看您的问题是否消失:

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