修正方法:ポート22のDebian / Ubuntuで接続が拒否されました

How Fix Connection Refused Port 22 Debian Ubuntu



SSHは、Linuxサーバーにアクセスして管理するための安全な方法を提供します。 SSHサーバーへの接続中に、ポート22による接続拒否エラーが発生することがよくあります。これは、SSHサービスが実行されていない、ポートがファイアウォールによってブロックされている、サーバーが別のポートを使用しているなどの理由で発生します。 IP競合の問題が原因で発生することもあります。この記事では、エラーを修正するために試す必要のあるいくつかの解決策について説明します。

ノート: ここで説明するコマンドは、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-server

SSHサービスを確認してください

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による接続拒否エラーを修正する方法です。この記事では、接続拒否エラーの解決に確実に役立ついくつかの方法について説明しました。