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
考虑使用screen
或byobu
和问题可能会消失。 更重要的是,即使连接丢失,您也可以通过screen -r
或byobu -r
重新连接和恢复您之前使用的terminal屏幕。
byobu是一个屏幕的增强,并有一个很好的select,如EC2的成本估计。
您可以在计算机主目录的〜/ .ssh / config文件中设置一个保持活动的选项:
ServerAliveInterval 50
Amazon AWS通常会在您闲置60秒后断开您的连接,因此此选项将每50秒钟ping一次服务器,并保持连接无限期。
假设您的Amazon EC2实例正在运行Linux(以及使用SSH-2而非1的可能情况),以下内容应该可以非常方便地使用:
-
远程login到您的EC2实例。
ssh -i <YOUR_PRIVATE_KEY_FILE>.pem <INTERNET_ADDRESS_OF_YOUR_INSTANCE>
-
为实例的SSH服务器configuration文件添加一个“client-alive”指令。
echo 'ClientAliveInterval 60' | sudo tee --append /etc/ssh/sshd_config
-
重新启动或重新加载SSH服务器,以便识别configuration更改。
-
在Ubuntu Linux上的命令将是..
sudo service ssh restart
-
但是,在其他Linux上 ,以下内容可能是正确的。
sudo service sshd restart
-
-
断开。
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。