我在使用 Cygwin SSH 客户端从 Windows 机器访问远程 RedHat 服务器时遇到了一些问题。
我所做的是通过从家用 Windows 机器登录,在远程 RedHat 机器上运行一些相当耗时的 QA 脚本。在客户端,我在普通的 Cygwin 控制台窗口中使用 Cygwin SSH。只要我以交互方式工作(即从命令行执行命令),一切都很好。当我启动脚本时,只要脚本在终端上产生任何可见的活动,即只要它在屏幕上打印一些内容,一切都会正常工作。但如果输出中出现明显的停顿,与 RedHat 机器的连接最终会断开,并显示“写入失败:对等方重置连接”消息。
这是某种超时/保持活动问题吗?如果是,我必须配置什么才能阻止这种情况发生?在哪里(服务器端还是客户端)?
答案1
修改超时:
配置服务器
打开 /etc/ssh/sshd_config 并找到 ClientAliveInterval 选项(如果不存在,请添加)。该值以秒为单位,因此我选择了 540 秒,即 9 分钟。
ClientAliveInterval 540
配置客户端
编辑 /etc/ssh/ssh_config 并找到 ServerAliveInterval 选项(如果不存在,请添加它)。同样,这个值以秒为单位,因此 9 分钟的间隔是 540 秒。
ServerAliveInterval 540
答案2
这很可能是超时;为了防止发生这种情况,您可以使用以下设置~/.ssh/config
ServerAliveInterval <keepalive-interval>
每 <keepalive-interval> 秒发送一个保持活动数据包。