繁体   English   中英

由于不活动,Amazon EC2 ssh 超时

[英]Amazon EC2 ssh timeout due inactivity

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

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

错误如下所示:

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

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

ServerAliveInterval 50

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

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

  1. 远程访问您的 EC2 实例。

     ssh -i <YOUR_PRIVATE_KEY_FILE>.pem <INTERNET_ADDRESS_OF_YOUR_INSTANCE>
  2. 将“client-alive”指令添加到实例的 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

下次您通过 SSH 连接到该 EC2 实例时,那些超级烦人的频繁连接冻结/超时/断开应该会消失。

这对于 Google Compute Engine 实例也有帮助,它带有类似令人讨厌的默认设置。

警告:请注意,TCPKEEPALIVE设置(这也是存在的)是微妙的,但明显从ClientAlive设置的不同,我提出以上,并且从更改默认设置TCPKEEPALIVE实际上可能伤害你的情况,而不是帮助。

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

考虑使用screenbyobu ,问题可能会消失。 此外,即使连接丢失,您也可以通过screen -rbyobu -r重新连接并恢复对之前相同终端屏幕的访问。

byobu 是 screen 的增强功能,并有一组很棒的选项,例如 EC2 成本估算。

我知道对于 Putty,您可以使用 keepalive 设置,因此它会每隔一段时间发送一些活动数据包,以免“空闲”或“过时”

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

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

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

Settings -> Configuration -> SSH -> SSH keepalive

更改设置后记得重启 Mobaxterm 应用程序。

我有 10 多个自定义 AMI,全部基于 Amazon Linux AMI,而且我从未遇到过由于 SSH 连接不活动而导致的任何超时问题。 我的连接保持打开状态超过 24 小时,而没有运行任何命令。 我认为 Amazon Linux AMI 中没有内置任何超时。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM