元々はAsk Ubuntuに投稿されました
「外部」要因を除外した場合は、通常、次の一連の手順でそれを絞り込むことができます。したがって、これはあなたの質問に直接答えるものではありませんが、エラーの原因を追跡するのに役立つかもしれません.
トラブルシューティング sshd
そのような場合に一般的に非常に役立つと思うのは、 sshd
を開始することです デーモン化させずに。私の場合の問題は、 syslog
でもないことでした auth.log
でもありません 意味のあるものを示しました。
取得した端末から起動したとき:
# $(which sshd) -Ddp 10222
/etc/ssh/sshd_config line 8: address family must be specified before ListenAddress.
ずっといい!このエラー メッセージにより、何が問題なのかを確認して修正することができました。どちらのログ ファイルにもこの出力は含まれていません。
注意: 少なくとも Ubuntu では $(which sshd)
sshd
を満たす最良の方法です 絶対パスの要件。そうしないと、次のエラーが発生します:sshd re-exec requires execution with an absolute path
. -p 10222
sshd
になります その代替ポートでリッスンし、構成ファイルをオーバーライドします。これは、潜在的に実行中の sshd
と衝突しないようにするためです。 インスタンス。ここで空いているポートを選択してください。
最後に、代替ポート (ssh -p 10222 [email protected]
) に接続します。 ).
この方法は、認証の問題であろうと他のタイプであろうと、問題を見つけるのに何度も役立ちました。 stdout
に非常に詳細な出力を取得するには 、 $(which sshd) -Ddddp 10222
を使用 (追加された dd
に注意してください 冗長性を高めるため)。デバッグの良さについては、man sshd
を確認してください。 .
この方法の主な利点は、sshd
をチェックできることです。 構成なし sshd
を再起動する必要があります デフォルトのポートで。 通常 これは既存の SSH 接続に干渉しないはずですが、私はそれを見てきました。したがって、これにより、リモートサーバーへのアクセスを切断する可能性がある前に、構成ファイルを検証できます(たとえば、一部のVPSや、帯域外アクセスを取得するために追加料金を支払う必要がある物理サーバーに対してもそれを持っています)マシンに)
また、メモリがひどく断片化されているため、ページに連続したメモリを割り当てて、SSH セッションをホストするためのプロセスを分岐させることができないホストを持つこともできます。
このような場合、次のいずれかのメッセージを取得できます:
ssh_exchange_identification: read: Connection reset by peer
または:
Connection closed by aaa.bbb.ccc.ddd
ホストがベイルアウトするまでにどこまで到達するかによって異なります。
メモリの断片化が明らかな原因である場合、解決策は、他の手段でサーバーにアクセスし、関連するサービスの一部を再起動することです。 VMにはスワップパーティションがないため、ApacheとMySQLがVMの原因であることがわかりました。それができない場合は、ホストを再起動してください。
念のため、これは私に起こったからです。ホストで sshd が実行されていることを確認してください!
これはばかげた失敗ですが、実際にはあなたの問題かもしれません.