VPSにSSH接続を行い、ターミナル経由で数分間操作しないだけで、client_loop: send disconnect: Broken pipe
という出力とともに、SSH接続が突如切断されてしまい、とても不便だったので、その時の解決方法を本稿では記載します。
エラー内容
冒頭でも記載した通り、VPSにSSH接続を行い、ターミナル経由で数分間操作しないだけで下記のエラーが出力され、SSH接続が切断されてしまいました。
client_loop: send disconnect: Broken pipe
解決方法
放置しているとタイムアウトにより、ssh接続が切断される仕組みになっているらしいので、ホスト(今回はVPS)のSSH接続の設定ファイルである/etc/ssh/sshd_config
に下記を追記する必要があります。
テキストエディタで設定ファイルを開く
xxx@yyy:~$ sudo vim /etc/ssh/sshd_config
最終行に下記を追記する
ClientAliveInterval 300
ClientAliveInterval では、sshd側が一定期間クライアントと通信していないときに、応答確認を行います。
300という数字は、300秒毎(5分毎)に応答確認を行うことによって接続を維持するという設定です。この部分の数字は60や120などでも良いと思います。
sshdの再読み込み
xxx@yyy:~$ sudo systemctl reload sshd.service