如何让ssh保持连接(不自动断开)

如果你的ssh连接过一段时间(比如10-20分钟)就卡住了,按按键也没反应,按Ctrl+C才能回到待输入状态, 还返回一段"Connection reset by 192.168.. port 22", 那应该是你的ssh连接被服务器中断了,这里简单总结下Windows和macOS系统下怎么处理这种情况(还有其他的办法,我只列下我用的),但这里的任何一种解决办法的本质都是让client端定时发送一个包给服务器,“嗯”一声,让服务器知道这边还没“挂电话” :P。

Windows 系统

PuTTY软件

如果你用的是PuTTY,那很方便,打开软件后点击Connection,在 "Sending of null packets to keep session active" 下面, "Seconds between keepalives" 左边,输入发送间隔(单位秒,比如240)。默认为0,表示不发送。

设置页面

其他Bash软件(Cygwin, MinGW)

找到ssh的配置文件,大概这样 'D:\Program Files\**\ssh\ssh_config', 在ssh_config里添加:

Host  *
  ServerAliveInterval 240

这段意思是:连接到所有服务器,都会每隔240秒发送一次激活包

macOS系统

mac也是一样,你的用户名文件夹下有个.ssh文件夹,里面有个config文件,添加:

Host  *
  ServerAliveInterval 240

这段意思是:连接到所有服务器,都会每隔240秒发送一次激活包

参考来源:

  1. https://www.a2hosting.com/kb/getting-started-guide/accessing-your-account/keeping-ssh-connections-alive
  2. https://superuser.com/questions/98562/way-to-avoid-ssh-connection-timeout-freezing-of-gnome-terminal

你可能感兴趣的:(如何让ssh保持连接(不自动断开))