Amazon EC2 ssh超时因不活动而导致

时间:2011-08-26 20:07:15

标签: ssh amazon-ec2 amazon-web-services

我可以通过SSH向我的EC2实例发出命令,这些命令记录了我应该长时间观看的答案。糟糕的是,由于我的不活动,SSH命令在一段时间后关闭,我不再能够看到我的实例发生了什么。

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

错误如下所示:

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

6 个答案:

答案 0 :(得分:101)

您可以在计算机主目录的〜/ .ssh / config文件中设置keep alive选项:

ServerAliveInterval 50

亚马逊AWS通常会在仅60秒不活动后断开连接,因此此选项将每隔50秒对服务器执行一次ping操作,并使您无限期地保持连接。

答案 1 :(得分:34)

假设您的Amazon EC2实例正在运行Linux(并且很可能是您使用SSH-2,而不是1),以下应该非常方便:

  1. 远程登录您的EC2实例。

    ssh -i <YOUR_PRIVATE_KEY_FILE>.pem <INTERNET_ADDRESS_OF_YOUR_INSTANCE>
    
  2. 添加&#34;客户端活着&#34;指向实例的SSH服务器配置文件。

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

    • Ubuntu Linux 上的命令将是..

      sudo service ssh restart
      
    • 任何其他Linux 上,以下内容可能正确..

      sudo service sshd restart
      
  4. 断开连接。

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

    这也有助于Google Compute Engine实例,它们具有类似烦人的默认设置。

    警告: 请注意 TCPKeepAlive 设置(也存在)是微妙的,但与明显不同我上面提出的ClientAlive 设置,以及从默认设置中更改TCPKeepAlive设置实际上可能会损害您的情况而不是帮助。

    此处有更多信息:http://man.openbsd.org/?query=sshd_config

答案 2 :(得分:10)

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

byobu是一个屏幕增强功能,有一套很棒的选项,比如估算EC2成本。

答案 3 :(得分:7)

我知道Putty你可以使用keepalive设置,所以它会经常发送一些活动包,以免“空闲”或“陈旧”

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

如果您正在使用其他客户,请告诉我。

答案 4 :(得分:0)

您可以使用具有以下设置的Mobaxterm免费选项卡式SSH终端-

Settings -> Configuration -> SSH -> SSH keepalive

请记住在更改设置后重新启动Mobaxterm应用。

答案 5 :(得分:-8)

我有10多个基于Amazon Linux AMI的自定义AMI,并且由于SSH连接不活动,我从未遇到过任何超时问题。我已经连接保持打开超过24小时,没有运行单个命令。我不认为亚马逊Linux AMI中有任何超时。