web-dev-qa-db-ja.com

非アクティブによるAmazon EC2 sshタイムアウト

SSHを介してEC2インスタンスにコマンドを発行できます。これらのコマンドは、長時間見続けることになっている回答を記録します。悪いことは、非アクティブのためにしばらくしてからSSHコマンドが閉じられ、インスタンスで何が起こっているのかを確認できなくなったことです。

Amazon Linuxマシンでタイムアウトを無効/増加するにはどうすればよいですか?

エラーは次のようになります。

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

53
Roberto

コンピューターのホームディレクトリの〜/ .ssh/configファイルでキープアライブオプションを設定できます。

ServerAliveInterval 50

Amazon AWSは通常、非アクティブな状態が60秒続くと接続を切断するため、このオプションは50秒ごとにサーバーにpingを送信し、無制限に接続し続けます。

105
mauriciomdea

Amazon EC2インスタンスがLinuxを実行していると仮定すると(そして、1ではなくSSH-2を使用している可能性が非常に高い場合)、以下は非常に便利に機能するはずです。

  1. EC2インスタンスにリモート接続します。

    ssh -i <YOUR_PRIVATE_KEY_FILE>.pem <INTERNET_ADDRESS_OF_YOUR_INSTANCE>
    
  2. インスタンスのSSHサーバー構成ファイルに「client-alive」ディレクティブを追加します。

    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
    

次回そのEC2インスタンスにSSHで接続するとき、これらの非常に厄介な頻繁な接続のフリーズ/タイムアウト/ドロップがなくなることを願っています。

これは、同様に迷惑なデフォルト設定が付属しているGoogle Compute Engineインスタンスにも役立ちます。

警告:注意してくださいTCPKeepAlive設定(これも存在します)は微妙ですが、上で提案したClientAlive設定とは明確に異なります。 TCPKeepAliveの設定をデフォルトから変更すると、実際には状況が悪化する可能性があります

詳細はこちら: http://man.openbsd.org/?query=sshd_config

38
naki

PuTTYの場合、キープアライブ設定を利用できるため、「アイドル」または「失効」しないように、アクティビティパケットを頻繁に送信します。

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

他のクライアントを使用している場合はお知らせください。

7
Jesse Collier