web-dev-qa-db-ja.com

SSHが突然機能しなくなった:「書き込み失敗:パイプの破損」

私は自宅でMacBook Proを使用しており、ラボのマシンに定期的にSSHでアクセスします。ただし、過去3〜4日間、ラボのマシンにSSHで接続するたびに、sshを実行してから2分以内にWrite Failed:Broken Pipeエラーが発生します。

数日前にすべてが完全に機能していたという事実は私を困惑させます。

9
NSR

これはネットワークの問題のようです。

一部のネットワーク機器が変更されたか、再構成されたかどうかを問い合わせます。 sshの実行に問題があることをネットワーク管理者に伝えてください。ファイアウォールの設定に誤りがある可能性があります。他のマシンまたは他のマシンにログインして、診断を改善してください。

これらの症状の1つの考えられる原因は、IPアドレスの競合です。クライアントとサーバーがIPアドレスを取得している場所を確認します。あなたが続けるならping server.example.com実行中、接続を長持ちさせるのに役立ちますか?その場合、IPアドレスが競合しています。 (pingは、IPパケットをマシンにルーティングする方法をルーターに伝え続けるので役立ちます。ただし、他のマシンがあなたの前にARP応答を送信した場合でも、接続は失われます。)これが問題は、修正する必要があります。同じアドレスを使用しているマシンの1つが別のアドレスを使用するように調整してください。

マシンのルーティングテーブルも確認してください。サーバーへのパケットが適切なインターフェースにルーティングされていることを確認してください。 (通常、不適切なルーティングテーブルは接続をまったく機能させませんが、エッジのケースで症状が説明されている場合があります。DHCPでアドレスを取得し、DHCPサーバーが接続先のサーバーでもある場合— DHCPサーバーのアドレスは、ARPキャッシュが期限切れになるまで、目的のインターフェイスにルーティングされます。

Mac OS Xで問題を解決しました。

#ClientAliveInterval 0

ClientAliveInterval 300

/etc/sshd_configthis に続いて、マシンを再起動します。

1
limlighten

これは、パケット損失が原因である可能性があります。 mtrのようなツールは、ルート内のどのホストが問題を引き起こしているかを診断するのに役立ちます。 ここ Mac OS Xにインストールするための手順が記載されています。

1

この問題は本社の一部のサーバーで発生し、以下を使用して解決しました。

TCPKeepAlive yes
ServerAliveInterval 5

sshで config ファイル(~/.ssh/config or /etc/ssh/ssh_config)。

後になって初めて、干渉が発生したオフィス間の通信を最適化するためにインストールされたハードウェアが原因であることがわかりました。

1
Anthon