ssh 隧道连接时 netcat 的“-w timeout”选项有什么用途?

ssh 隧道连接时 netcat 的“-w timeout”选项有什么用途?

我的情况和发帖人完全一样另一个问题,我正尝试通过网关服务器建立 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使用它会导致错误?省略它有什么害处?

答案1

-w 3原始解决方案中这个的目的是什么

当会话不当关闭时,它可以避免nc在远程主机上留下孤立的进程运行。ssh

为什么Broken pipe我使用它时会出现错误?

尝试将超时时间增加到nc90 并设置ServerAliveInterval为 30,看看问题是否消失:

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

相关内容