修正:ssh_exchange_identification‘リモートホストによって接続が閉じられました’

多くの場合、ssh_exchange_identification:接続がリモートホストによって閉じられたというエラーは、hosts.denyおよびhosts.allow構成ファイルに関連する問題が原因である可能性がありますが、他にも問題が発生する可能性があります。これを読んでいる場合は、これらのファイルの両方が、IPアドレスがリモートサーバーでsshを使用しようとすることをブロックしていないことを確認している可能性があります。

これが事実であると仮定すると、依存関係の問題、メモリの断片化に関連する何か、または個々のクライアントからの過剰な数のセッションにさえ目を向けている可能性があります。良いニュースは、いったん問題を解決すると、エラーが二度と表示されなくなることです。

方法1:欠落している依存関係を修正する

OpenSSLまたはglibcの更新後にのみssh_exchange_identification:接続がリモートホストエラーによって閉じられた場合、依存関係が欠落している可能性があります。sudo lsof -nを実行しますgrep ssh | この状況では、コマンドラインからgrep DELを実行します。これにより、開いているファイルのリストが表示され、sshデーモンに関連して最近削除されたファイルのみが検索されます。

何も戻らない場合でも、デーモンまたはシステム自体を再起動してみてください。/ run / user / 1000 / gvfsメッセージに関連するエラーは無視することができますが、これらのエラーは、仮想ファイルシステムで行います。

依存関係に問題があると思われる場合は、apt-get、pacman、またはyumを使用してパッケージを更新することもできます。DebianまたはUbuntuベースのシステムを使用している場合は、sudo apt-get -f upgradeを試して、違反した可能性のある壊れたパッケージが修正されるかどうかを確認します。

方法2:メモリの断片化を修正する

これで問題が解決しない場合は、方程式のホスト側に問題がある可能性があります。VM内で実行されるホストには、常にスワップパーティションがあるとは限らないため、メモリの断片化が発生する可能性があります。可能であれば物理的に他の手段でホストにアクセスし、問題のあるサービスを再起動します。MySQL、Apache、nginxなどのサービスが原因である可能性があります。

ホストを再起動することが常に可能であるとは限りませんが、これで問題が修正される可能性があり、このエラーメッセージとIPアドレスを返すエラーメッセージを交互に表示している場合は、良い考えです。サーバーになんらかのアクセス権がある場合は、vmstat -sコマンドを実行して、多くのインスタンスで通常のユーザーとしてもメモリがどのように使用されているかに関する重要な統計を取得できます。

方法3:追加のsshインスタンスを確認する

これを除外して、ホストがサーバーに接続しようとしているかどうかを確認します。知らないうちにSSHセッションの最大数を超えた可能性があります。古いセッションをクリアしてから、再接続してください。これを行う簡単な方法の1つは、whoコマンドを実行して、ログインしているユーザープロセスを確認することです。1人または2人のユーザーがログインしているだけです。パラレルユーザーが複数いる場合は、ユーザープロセスを強制終了して、再度ログインしてみてください。

これは、sshdが多くの異なるsshセッションをループで開始するスクリプトに追いつけない場合に発生する可能性があります。これが起こった場合は、sleep 0.3コマンドをループに追加して、sshdデーモンが遅れないようにします。

方法4:sshd接続制限を見つける

このような接続の問題は、デフォルトの最大接続数が非常に少ないため、sshを使用してルーターまたは別のタイプのボックス型スイッチにアクセスしようとすると特に発生します。サーバーに過負荷をかけたくない場合は、デフォルト設定を確認してください。

サーバーで実行して、sshdが処理できる接続の数を確認してください。ほとんどの場合、システムはデフォルトで10の同時接続に設定する必要があります。これは、大多数のユーザーが定期的にsshを使用する必要があると思われるほとんどのサーバー構造にとって十分なはずです。