簡體   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