私は自宅で MacBook Pro を使用しており、研究室のマシンに定期的に SSH 接続しています。しかし、ここ 3 ~ 4 日間、研究室のマシンに SSH 接続するたびに、SSH 接続後 2 分も経たないうちに Write Failed:Broken Pipe エラーが発生します。
数日前まですべてが完璧に機能していたという事実に困惑しており、再び機能させるための支援があれば大変助かります。
答え1
これはネットワークの問題のようです。
ネットワーク機器が変更されたか、再構成されたかどうかを調べてください。ネットワーク管理者に、SSH で接続できない問題があることを伝えてください。ファイアウォールの設定に誤りがある可能性があります。診断を改善するために、他のマシンから、または他のマシンにログインしてみてください。
これらの症状の原因として考えられるのは、IP アドレスの競合です。クライアントとサーバーが IP アドレスを取得している場所を確認してください。ping server.example.com
実行を続けると、接続が長持ちしますか? そうであれば、IP アドレスの競合が発生しています。(ping
途中でルーターに IP パケットを自分のマシンにルーティングするように指示し続けるため、役立ちますが、他のマシンが先に ARP 応答を送信すると、接続が失われます。) これが問題である場合は、修正する必要があります。つまり、同じアドレスを使用しているマシンの 1 つが別のアドレスを使用するように設定してください。
また、マシンのルーティング テーブルも確認してください。サーバーへのパケットが適切なインターフェイスにルーティングされていることを確認してください。(ルーティング テーブルが不良だと通常は接続がまったく機能しなくなりますが、症状があなたが説明したものになるエッジ ケースがあります。DHCP でアドレスを取得し、接続先のサーバーが DHCP サーバーでもある場合、ARP キャッシュの有効期限が切れるまで、DHCP サーバーのアドレスが目的のインターフェイスにルーティングされます。)
答え2
これはパケット損失が原因である可能性があります。 のようなツールを使用すると、mtr
ルート内のどのホストが問題を引き起こしているかを診断するのに役立ちます。ここMac OS X にインストールする手順が記載されています。
答え3
本社のいくつかのサーバーでこの問題が発生したため、次の方法で解決しました。
TCPKeepAlive yes
ServerAliveInterval 5
SSHで設定ファイル (~/.ssh/config or /etc/ssh/ssh_config
)。
後になって、オフィス間の通信を最適化するためにインストールされたハードウェアが干渉していたことが原因であることがわかりました。
答え4
私はMac OS Xで問題を解決しました。
#ClientAliveInterval 0
に
ClientAliveInterval 300
続い/etc/sshd_config
てこれ、マシンを再起動すれば完了です。