Posted at

【ターミナル】Broken pipe の回避方法

MacのターミナルからEC2にssh接続し、ちょっと操作しないでいるとすぐこのエラーになる。

[ec2-user@ip-10-0-1-10 ~]# packet_write_wait: Connection to 52.192.37.33 port 22: Broken pipe

一定期間無操作でいるとsshが切れてしまうらしい。


回避方法

クライアント側とサーバ側で各々設定で回避できる。

今回は手っ取り早いのでクライアント側で設定する。

これでどのインスタンスに対してもBroken pipeを回避できるしね。

~/.ssh/sshd_configに以下の記述を追加する。

ServerAliveInterval 60

ServerAliveCountMax 3

ServerAliveIntervalはsshdサーバと応答確認する感覚。デフォルトは0。つまり設定を入れないと応答確認しない。

ServerAliveCountMaxは応答確認する回数。デフォルトは3。

この設定値の場合、60秒ごとに応答確認を行い応答がない場合3回繰り返す。つまり、サーバが応答しなくなった後180秒後に接続が切れる。

サーバ側で設定する場合は、/etc/ssh/sshd_configにClientAliveIntervalとClientAliveCountMaxを設定すればいい。


参考

https://linux.die.net/man/5/ssh_config