さくらVPSにSSH接続する際に
client_loop: send disconnect: Broken pipe
が頻発してしまったので対応方法をメモ。
原因
sshd_configのドキュメントを確認。
https://man.openbsd.org/sshd_config#ClientAliveCountMax
どうやらSSH接続の際にサーバー・クライアント間で通信がないとタイムアウトになり接続が解除される。
デフォルトのClientAliveIntervalは0のため、Client側の設定次第依存が大きい。
対処方法
ちょうどいい塩梅を見つけるのがベストだが、今回は以下の設定で対応
クライアント側の設定
無操作時に、通信をするように.ssh/configを修正する
$vi ~/.ssh/config
#以下を追記
ServerAliveInterval 30
TCPKeepAlive yes
30秒に1回、通信を行えば常時接続できることを想定。
サーバー側の設定
サーバー側の応答閾値も変更する。
$sudo vi /etc/ssh/sshd_config
#以下を追記
ClientAliveInterval 60
SSHを切った後にも接続が維持されることを避けるため、ClientAliveCountMaxはデフォルトのままにした。
また最後にsshdの再起動を行う。
$sudo systemctl reload sshd.service
コメント