保持 SSH 会话处于活动状态 [关闭]
- 2024-10-12 10:28:00
- admin 原创
- 230
问题描述:
我用来ssh -p8520 username@remote_host
登录远程服务器。
问题:
当我在工作场所时,它始终处于连接状态并正常工作。不幸的是,当我从家里连接到远程服务器后,终端会在 10 - 15 分钟内冻结。
控制台上没有错误/超时报告,但光标无法再移动。
当进入w
检查登录用户时,发现有一些僵尸登录用户,我必须手动杀死它们。
这很烦人。有人能帮帮我吗?
解决方案 1:
运行在服务器端的 ssh 守护进程 (sshd) 会在客户端静默(即不发送信息)时从服务器端关闭连接。为了防止连接丢失,指示 ssh 客户端不时向服务器发送生命信号。
此配置位于文件中$HOME/.ssh/config
,如果不存在则创建该文件(配置文件必须不是全局可读的,因此请chmod 600 ~/.ssh/config
在创建文件后运行)。要每隔四分钟(240 秒)向远程主机发送一次信号,请在该配置文件中输入以下内容:
Host remotehost
HostName remotehost.com
ServerAliveInterval 240
要为所有主机启用发送保持活动信号,请将以下内容放入配置文件中:
Host *
ServerAliveInterval 240
解决方案 2:
我想要一个一次性的解决方案:
ssh -o ServerAliveInterval=60 myname@myhost.com
将其存储在别名中:
alias sshprod='ssh -v -o ServerAliveInterval=60 myname@myhost.com'
现在可以像这样连接:
me@MyMachine:~$ sshprod
解决方案 3:
对于那些想知道的人,@edward-coast
如果要为服务器设置保持活动,请将其添加到/etc/ssh/sshd_config
:
ClientAliveInterval 60
ClientAliveCountMax 2
ClientAliveInterval:设置一个超时间隔(以秒为单位),如果在此间隔之后没有从客户端收到任何数据,sshd(8) 将通过加密通道发送一条消息,请求客户端做出响应。
ClientAliveCountMax:设置 sshd(8) 不从客户端收到任何消息的情况下可以发送的客户端活动消息数量(见下文)。如果在发送客户端活动消息时达到此阈值,sshd 将断开客户端连接,终止会话。
解决方案 4:
仅供参考,Putty 用户可以在此处设置选项
解决方案 5:
我们可以通过以下全局配置来保持我们的 ssh 连接处于活动状态
在文件中添加以下行/etc/ssh/ssh_config
:
ServerAliveInterval 60
扫码咨询,免费领取项目管理大礼包!