Amazon EC2由于不活动而导致ssh超时

我能够通过SSH向我的EC2实例发出命令,这些命令logging了我应该长期观看的答案。 不好的一点是,由于我的闲置状态,SSH命令在一段时间后closures,我不再能看到我的实例正在发生什么。

如何禁用/增加Amazon Linux机器的超时?

错误如下所示:

Read from remote host ec2-50-17-48-222.compute-1.amazonaws.com: Connection reset by peer

考虑使用screenbyobu和问题可能会消失。 更重要的是,即使连接丢失,您也可以通过screen -rbyobu -r重新连接和恢复您之前使用的terminal屏幕。

byobu是一个屏幕的增强,并有一个很好的select,如EC2的成本估计。

您可以在计算机主目录的〜/ .ssh / config文件中设置一个保持活动的选项:

 ServerAliveInterval 50 

Amazon AWS通常会在您闲置60秒后断开您的连接,因此此选项将每50秒钟ping一次服务器,并保持连接无限期。

假设您的Amazon EC2实例正在运行Linux(以及使用SSH-2而非1的可能情况),以下内容应该可以非常方便地使用:

  1. 远程login到您的EC2实例。

     ssh -i <YOUR_PRIVATE_KEY_FILE>.pem <INTERNET_ADDRESS_OF_YOUR_INSTANCE> 
  2. 为实例的SSH服务器configuration文件添加一个“client-alive”指令。

     echo 'ClientAliveInterval 60' | sudo tee --append /etc/ssh/sshd_config 
  3. 重新启动或重新加载SSH服务器,以便识别configuration更改。

    • Ubuntu Linux上的命令将是..

       sudo service ssh restart 
    • 但是,在其他Linux上 ,以下内容可能是正确的。

       sudo service sshd restart 
  4. 断开。

     logout 

当你下一次进入该EC2实例时,那些超级烦人的频繁连接冻结/超时/丢失应该会消失。

这也对Google Compute Engine实例有帮助,这些实例也有类似恼人的默认设置。

警告:请注意, TCPKeepAlive设置(也存在)很微妙,但与上面提到的ClientAlive设置明显不同,并且从默认设置改变TCPKeepAlive设置实际上可能会伤害您的情况,而不是帮助。

更多信息在这里: http : //man.openbsd.org/?query=sshd_config

我知道腻子,你可以利用一个保持活动的设置,所以它会发送一些活动包,每隔一段时间不要去“空闲”或“陈旧”

http://the.earth.li/~sgtatham/putty/0.55/htmldoc/Chapter4.html#S4.13.4

如果您正在使用其他客户请让我知道。

我有10多个定制的AMI全部基于Amazon Linux AMI,而且由于SSH连接处于非活动状态,我从来没有遇到任何超时问题。 我有连接保持打开超过24小时,没有运行一个命令。 我不认为有任何超时内置到亚马逊Linux AMIs。