WLSでssh接続するときに[Write failed: Broken pipe]する際の対処法

sshでリモート接続しているときにWrite failed: Broken pipeが頻発していたのでその対処。

別にWSLに限らず、Unix系全般に使える設定ですが、WSLでこの問題にぶち当たった人が検索でこちらのページで救われることを考慮してこのようなタイトルになりました。

少しでも参考になれば幸いです。

環境

クライアント : Ubuntu 18.04 LTS on WLS2
サーバー : Ubuntu 18.04 LTS 64bit

対処法としてサーバー側かクライアント側の設定を少しだけ変えてあげればよいです。

クライアント側(接続元)で対処


/etc/ssh/ssh_configまたは~/.ssh/configに以下のコマンドを追加してください。今回の例ではnanoを使って編集しますが、vimでもemacsでもお好きなエディタで大丈夫です。

$ nano ~/.ssh/config

ServerAliveInterval 15
ServerAliveCountMax 10

この設定で15秒ごとに10回応答確認をサーバに送り、
それでも応答がない場合にタイムアウトになります。

サーバー側(接続先)で対処


次にサーバ側で対応する方法ですがデーモンの設定を変えてあげます。特に何も設定先をいじっていなければ/etc/ssh/sshd_configに設定ファイルがあります。

$ nano /etc/ssh/sshd_config

ClientAliveInterval 20
ClientAliveCountMax 5


サーバーかクライアントどちらか一つ設定してあげれば大丈夫です。

私の場合はクライアント側(WSL)に設定を追記しました。

ご参考になればと思います。

Linux UbuntuLinuxサーバーUbuntuUbunut18.04日常機械学習深層学習
スポンサーリンク
Toufuをフォローする

コメント

タイトルとURLをコピーしました