SSH连接云服务器报错The semaphore timeout period has expired

     大致经过就是,我买了一个云主机,然后使用ssh进行连接的时候,运行了一个很长时间的编译命令,但是每次没编译结束就停了,搞的我很是烦,通过报错语句可以看到是超时问题timeout。那么需要外面对ssh命令连接的配置进行更改,主要就是在服务器下/etc/ssh/ssh_config文件最后一行加上ClientAliveInterval 3600 然后重启服务器(远程主机重启要谨慎),然后就可以啦。其实就是配置了一些客户端连接生存的间隔时间,也就是我们不在终端进行输入命令的话,这个客户端连接可以保持多久,那么单位是秒s

一 、场景复原

 

SSH连接云服务器报错The semaphore timeout period has expired_第1张图片

二 、解决办法

【1】修改配置

【服务端】

【/etc/ssh/ssh_config】一些配置

# server每隔一小时给客户端发送一次保活信息包给客户端
ClientAliveInterval 3600

# server端发出的请求客户端没有回应的次数达到86400次的时候就断开连接,正常情况下客户端都会相应
ClientAliveCountMax 86400

 

 

【客户端】

Options->Session Options->Terminal->Anti-idle->勾选Send protocol NO-OP

(中文版:选项->会话选项->终端->反空闲->发送协议NO-OP)

后面的设置时间默认的是60秒,只要小于自动断开连接的时限就可以了

SSH连接云服务器报错The semaphore timeout period has expired_第2张图片

大功告成

 

 

 

【2】后台执行命令

  • 转变思路,后台执行也可以。嘻嘻嘻第二种方法啦
  • 可以在命令后面加上& 实现后台运行。例如  sh test.sh & 

 

你可能感兴趣的:(linux)