The path twists, and the future is uncertain.

Windows 自带 OpenSSH 连接到 Linux 服务器时,一段时间无操作,连接断开的问题

我在自己的 mac 上使用 ssh 连接到远端 Linux 服务器,除非网络波动,一般不会出现连接断开(输入无响应)的问题。
但在 Windows 上,使用 PowerShell 自带的 ssh,连接到远端 Linux 服务器,很短一段时间不操作,就会发生断开。
这个现象应该是跟服务器端设置有关,但我不想修改服务器设置(用户无操作自动断开是个好特性)。既然 Mac 上可以不断开,win 上应该也可以在客户端设置上避免频繁断开。


解决方法就是令本地的 ssh client 每隔一段时间自动确认存活。避免服务器端将当前连接杀掉。具体操作:

Windows 自带的 OpenSSH 现在是默认安装的,很多人找不到配置文件在哪。默认配置文件路径:
C:\ProgramData\ssh

在该路径下新建/编辑文件:ssh_config 添加内容:
ServerAliveInterval 50
ServerAliveCountMax 3

之后重启 Power Shell,就可以在 ssh 访问远端服务器时保持会话连接了。

网上有些教程里同时建议修改(创建)了另一个文件 sshd_config
ClientAliveInterval 50
ClientAliveCountMax 3

但根据这两篇文章:

可知 sshd_config文件是针对当前机器作为服务器时的设定,也就是别人访问你的 win 主机时才会生效的设定。这个修改应该是不必要的。

Previous

关于乐理的简单物理学

Next

一种微信机器人的 python 实现

2 Comments

  1. CommandNotFound ⚡️ 坑否

    请教一下,我按这个设置好像不生效,Win11,是什么原因呢, SecureCRT 是否默认底层用的 OpenSSH?

    • twisted

      我想你自己已经回答了自己。
      SecureCRT 是自己实现了一套闭源的 ssh,没有调用 OpenSSH。所以你像我这样给 openssh 做配置是不能生效的。应该找找 SecureCRT 自己的设置里面有没有类似选项

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Powered by WordPress & Theme by Anders Norén