我能够通过SSH向我的EC2实例发出命令,这些命令记录了我应该长期观看的答案。坏消息是,由于我的闲置状态,SSH命令在一段时间后关闭,我不再能看到我的实例正在发生什么。亚马逊EC2由于不活动而导致的ssh超时
如何在Amazon Linux机器中禁用/增加超时?
错误看起来是这样的:
Read from remote host ec2-50-17-48-222.compute-1.amazonaws.com: Connection reset by peer
我能够通过SSH向我的EC2实例发出命令,这些命令记录了我应该长期观看的答案。坏消息是,由于我的闲置状态,SSH命令在一段时间后关闭,我不再能看到我的实例正在发生什么。亚马逊EC2由于不活动而导致的ssh超时
如何在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
重新连接并恢复与之前相同的终端屏幕。
byobu是一个屏幕增强,并有一个很好的选项,如EC2成本的估计。
我知道腻子你可以利用保活设置,以便它会发出一些活动数据包,每隔一段时间,以不走“闲置”或“过时”
http://the.earth.li/~sgtatham/putty/0.55/htmldoc/Chapter4.html#S4.13.4
如果你使用的是其他客户端让我知道。
我正在使用bash ssh。 – Roberto
假设您的Amazon EC2实例在运行Linux(和您正在使用SSH-2,而不是1很可能发生的情况),下面应该工作得得心应手:
远程连接到您的EC2实例。
ssh -i <YOUR_PRIVATE_KEY_FILE>.pem <INTERNET_ADDRESS_OF_YOUR_INSTANCE>
向实例的SSH服务器配置文件添加一个“client-alive”指令。
echo 'ClientAliveInterval 60' | sudo tee --append /etc/ssh/sshd_config
重新启动或重新加载SSH服务器,以便识别配置更改。
上Ubuntu Linux操作系统对于命令是..
sudo service ssh restart
在任何其他Linux,不过,以下是可能是正确的..
sudo service sshd restart
Di sconnect。
logout
你SSH连接到该EC2实例下一次,那些超级讨厌频繁的连接冻结/超时/分出应该有希望消失。
这对Google Compute Engine实例也有帮助,这些实例带有类似恼人的默认设置。
警告:请注意,TCPKEEPALIVE设置(这也是存在的)是微妙的,但来自ClientAlive设置,我上面的建议明显不同,而且从默认改变TCPKEEPALIVE设置实际上可能会伤害你情况而不是帮助。
您可以设置保持连接的选项在你的〜/ .ssh /配置您的计算机的主目录文件:
ServerAliveInterval 50
亚马逊AWS通常下降后您的连接只有60秒的不活动,所以这个选项会每隔50秒对服务器进行一次ping操作,并保持连接无限期。
此设置位于客户端,与AWS服务器相反,对吗?在答案中值得一提。另外,你确定60秒吗?这肯定比我的关系需要更长的时间。 – CupawnTae
是的,它在客户端,在您的* nix计算机上的ssh配置中。我会更新答案,谢谢! 对我来说,这实际上是120秒,但我有一个同事在另一个地区工作,并在60秒内超时。不要问我为什么,我不在亚马逊工作!这就是为什么我说“通常”60秒。我认为建议50秒是谨慎的,因为1.它几乎适用于所有人,2.它不会打断你的网络连接,它只是一个ping。你可以放10秒,它仍然足够轻,不会陷入某种服务器禁令。 – mauriciomdea
非常感谢。不活动1分钟后重新连接是很痛苦的。它帮助了我。 –
有没有一个很好的教程这些? EC2主机上都没有预先安装,并且从我读过的内容中可以看出,它们应该在服务器上运行它们。 –
我更喜欢@ brandnewcode的'ServerAliveInterval',如下。我一直在使用tmux,这与屏幕很相似。 tmux的一个非预期的好处是状态栏上的时钟每分钟更新一次,保持连接打开。 tl; dr:'tmux'开始会话,'tmux a'重新连接。 – dannyman
这不应该被标记为正确的答案,因为它回答了一个不同的问题。 –