EC2にターミナルでsshログインしたまま、数分放置すると固まってしまう…

macでAWSのEC2にSSH接続中に突然”Broken pipe”エラーが出て切断されてしまうことがあります。
このエラーは、SSHクライアントが送信したデータが到達する前にTCPコネクションが切断されてしまうことによって発生するようです。この問題の解決方法を紹介します。

解決方法

ホスト側の設定変更

ホスト側のSSHクライアント設定ファイルを編集します。このファイルは、ユーザーのホームディレクトリにある.ssh/configファイルです。次のコマンドを実行して、このファイルを開きます。

vi /Users/{ホスト名}/.ssh/config

configファイルに以下の設定を追加します。

Host *
ServerAliveInterval 60
TCPKeepAlive yes

これにより、すべてのSSH接続でTCPKeepAliveを有効にし、サーバーとの接続が切断されないようにします。

クライアント側の設定変更

クライアント側のSSHクライアント設定ファイルを編集します。このファイルは、/etc/ssh/ssh_configです。次のコマンドを実行して、このファイルを開きます。

vi ~/.ssh/config

configファイルに以下の設定を追加します。

Host *
ServerAliveInterval 60
TCPKeepAlive yes

これにより、すべてのSSH接続でTCPKeepAliveを有効にし、サーバーとの接続が切断されないようになりました。

コメントを残す

入力エリアすべてが必須項目です。メールアドレスが公開されることはありません。

内容をご確認の上、送信してください。