レンタルサーバなどにssh接続し、以下のようなメッセージが出力され切断された場合の対処方法を記します。
packet_write_wait: Connection to <host> port 22: Broken pipe
また、本資料ではサーバ側の設定ではなく、クライアント側の設定の紹介をさせていただきます。
Broken pipeと出力される原因は、クライアントからサーバ(ssh接続先)に対して
一定時間無操作ためタイムアウトにより切断されたと思われます。
タイムアウトを防止するため、クライアントからサーバに対し、応答メッセージを出力するように設定します。
設定を記述するファイルは以下のファイルになります。
~/.ssh/config
設定例は以下のようになります。
10秒ごとサーバに応答確認し、5回まで試行する。
ServerAliveInterval 10 ServerAliveCountMax 5
ServerAliveIntervalはサーバに対して応答確認する間隔を秒で指定します。
ServerAliveCountMaxはサーバに対しての応答がない場合のリトライ回数になります。
したがって、ServerAliveInterval * ServerAliveCountMax が最大の待ち時間になります。
以下のコマンドで上記で紹介した、ServerAliveInterval, ServerAliveCountMaxをできます。
echo 'ServerAliveInterval 10' >> ~/.ssh/config echo 'ServerAliveCountMax 5' >> ~/.ssh/config
以上、broken pipeでsshが切断される場合のクライアント側の対処方法でした。