この記事は最終更新日から2年以上経過しており、内容が古くなっている可能性があります。
ご理解の上、記事を閲覧いただければと思います。

MacのターミナルでSSH接続中、操作せずに数分置いておくと、以下のようなメッセージが表示されSSHが切断されることがあります。

packet_write_wait: Connection to ***.***.**.*** port *****: Broken pipe

この現象の解決法を紹介します。

【解決法】configファイルに「TCPKeepAlive」を記載して接続を維持する

configファイルに「TCPKeepAlive」を記載し、定期的に通信することで接続を維持できます。設定方法は下記。

  1. 以下の場所にあるconfigファイルを開きます。

    /Users/{PCの名前}/.ssh/config

    ※なお、「.ssh」は不可視(隠しフォルダ)です。
    Finder上に表示されていない場合はcommand + shift + .で表示できます。

    【参考】不可視ファイルの表示/非表示を切り替える

  2. configファイルに下記を記載して保存します。

    Host *
    ServerAliveInterval 60
    TCPKeepAlive yes

    「ServerAliveInterval」はTCPKeepAliveを送信する間隔で、上記例では60秒に設定しています。

なお、「Broken pipe」はWindowsで「Tera Term」等を使用してSSH接続している場合は起こりませんでした。

参考にさせていただいた記事