ノート: ここで説明するコマンドは、Ubuntu 20.04LTSでテストされています。同じコマンドがDebianシステムにも有効です。
接続拒否エラーを修正
これは、SSH経由でリモートシステムに接続しているときに発生する可能性のある接続拒否エラーです。
接続拒否エラーを解決するには、以下の解決策を段階的に実行してください。
OpenSSHがインストールされていることを確認してください
接続拒否エラーが発生する理由の1つは、OpenSSHサーバーがターゲットサーバーにインストールされていないためです。
まず、SSH経由でアクセスしようとしているシステムにOpenSSHサーバーがインストールされていることを確認する必要があります。 OpenSSHがインストールされているかどうかを確認するには、ターゲットサーバーのターミナルで次のコマンドを発行します。
$sudoaptリスト-インストール済み | グリップopenssh-server
このコマンドは基本的に、インストールされているパッケージのリストからopenssh-serverという用語をフィルタリングします。次のような出力が表示された場合は、OpenSSHサーバーがインストールされていることを示しています。一方、出力がない場合は、ターゲットサーバーにOpenSSHがないことを意味します。
ターゲットサーバーにインストールされていない場合は、次のコマンドをsudoとして使用してインストールできます。
$sudoaptインストールopenssh-server次に、sudo passwordを入力し、確認を求められたら、「y」を押します。インストールしたら、同じコマンドを使用して確認します
$sudoaptリスト-インストール済み | グリップopenssh-serverSSHサービスを確認してください
OpenSSHサービスはバックグラウンドで実行され、着信接続をリッスンします。停止したOpenSSHサービスは、接続拒否エラーが発生する理由の1つである可能性があります。
したがって、ターミナルで次のコマンドを使用して、OpenSSHサービスが実行されているかどうかを確認する必要があります。
$sudoサービスssh状態次の出力が表示された場合は、サービスがアクティブであり、バックグラウンドで実行されていることを意味します。
一方、あなたが受け取る場合 非アクティブ(デッド)、 これは、サービスが実行されていないことを意味します 。 ターミナルでsudoとして次のコマンドを使用してOpenSSHサービスを実行できます。
$sudoサービスssh始めるサービスを再起動するには、次のコマンドを使用します。
$sudoサービスssh再起動SSHサーバーのリスニングポートを確認します
接続拒否エラーを受け取るもう1つの理由は、間違ったポートに接続しようとしているためです。たとえば、サーバーがポート2244でリッスンするように構成されていて、デフォルトのポート22に接続しようとすると、この場合、接続拒否エラーが表示されます。
接続を試みる前に、SSHサーバーのリスニングポートを確認する必要があります。デフォルトのポート(22)の場合は、次のコマンドを使用して接続できます。
$ssh [ユーザー名]@[リモートサーバーIPまたはホスト名]デフォルトのポート以外のポートの場合は、次のポートを使用してSSHサーバーに接続する必要があります。
$ssh -NS [ポート番号] [ユーザー名]@[IPアドレス]OpenSSHサーバーがどのポートでリッスンしているかを確認するため。ターミナルで次のコマンドを使用します。
$sudo netstat -ltnp | グリップsshd次のような出力が表示されます。
3番目の列では、サーバーのリスニングポートが2244であることがわかります。この場合、このポートを使用してSSHサーバーに接続する必要があります。
$ssh -NS [2244] [ユーザー名]@[IPアドレス]ファイアウォールでSSHを許可する
SSHポートをブロックしているファイアウォールは、接続拒否エラーのもう1つの主な理由である可能性があります。 SSHサーバーでファイアウォールが実行されている場合は、次のコマンドを使用してファイアウォールでSSHポートを許可する必要があります。を交換してください 港 SSHサーバーがリッスンしているポート番号:
$sudoufwallowポート/tcpたとえば、SSHサーバーがポート2244をリッスンしている場合、ファイアウォールで次のように許可できます。
$sudoufw allow2244/tcp
次のコマンドを使用してファイアウォールをリロードします。
$sudoufwリロードルールが追加されているかどうかを確認するには、ターミナルで次のコマンドを使用してファイアウォールのステータスを確認します。
$sudoufwステータス次の出力は、ポート2244がファイアウォールで許可されていることを示しています。
重複するIPアドレスの競合を解決する
重複するIPアドレスの競合が原因で、接続拒否エラーが発生することもあります。したがって、システムに重複するIPアドレスがないことを確認してください。
次のコマンドを使用して、arpingユーティリティをシステムにインストールします。
$sudoaptインストールarping次に、SSHサーバーのIPアドレスにpingを実行します。
$ping <IPアドレス>>出力で、複数のMACアドレスからの応答が表示された場合は、システムで重複したIPが実行されていることを示しています。この場合は、SSHサーバーのIPアドレスを変更して、新しいIPアドレスで再接続してみてください。
これは、Linuxシステムのポート22による接続拒否エラーを修正する方法です。この記事では、接続拒否エラーの解決に確実に役立ついくつかの方法について説明しました。