Edited at

「Write failed: Broken pipe」によりsshが切断された時の対処法

More than 3 years have passed since last update.


現象

sshでリモートサーバにログインしているときに「Write failed: Broken pipe」と表示されて接続が切れてしまうことがあります。

sshはある程度の時間操作をせずにいるとタイムアウトにより自然に切断される仕組みになっているためであり、クライアント側orサーバ側でsshの設定を変更する必要があります。


対処法


クライアント側で対処

まず、クライアント側で対処するには/etc/ssh/ssh_configまたは~/.ssh/configに以下の内容を記述します。

$ vim ~/.ssh/config

ServerAliveInterval 15
ServerAliveCountMax 10

この設定で15秒ごとに10回応答確認をサーバに送り、

それでも応答がない場合にタイムアウトになります。


サーバ側で対処

次にサーバ側で対応する方法ですが、/etc/ssh/sshd_config

$ vim /etc/ssh/sshd_config

ClientAliveInterval 30
ClientAliveCountMax 5

と記述すると、30秒ごとにクライアントに5回応答確認をクライアントに送り、

それでも応答がなければタイムアウトになります。


余談

screenを使えば途中で接続が切れても再度リモートサーバにログイン、セッションをattachすれば済むのでオススメです。