GNU/Linux >> Linux の 問題 >  >> Ubuntu

SSH接続拒否エラーを修正する方法

はじめに

SSH経由でリモートサーバーにアクセスする際に問題が発生していますか? SSHが「接続が拒否されました」というメッセージで応答する場合は、リクエストを変更するか、設定を確認する必要があります。

このチュートリアルでは、SSH接続拒否エラーの最も一般的な理由を説明します。

SSHを使用すると接続が拒否されるのはなぜですか?

接続が拒否されました」が表示される理由はたくさんあります 「サーバーにSSHで接続しようとするとエラーが発生します。この問題を解決するには、まずシステムがSSH経由の接続を拒否した理由を特定する必要があります。

以下に、SSH接続拒否を引き起こす可能性のある最も一般的な理由のいくつかを示します。

SSHクライアントがインストールされていません

他の問題のトラブルシューティングを行う前に、最初のステップはSSHが正しくインストールされているかどうかを確認することです。サーバーにアクセスしているマシンには、SSHクライアントが設定されている必要があります。正しいクライアントが設定されていないと、サーバーにリモート接続できません。

システムにSSHクライアントがあるかどうかを確認するには、ターミナルウィンドウに次のように入力します。

ssh

端末がsshのリストを提供する場合 コマンドオプションを使用すると、SSHクライアントがシステムにインストールされます。ただし、コマンドが見つかりませんで応答した場合 、OpenSSHクライアントをインストールする必要があります。

解決策:SSHクライアントをインストールします

マシンにSSHクライアントをインストールするには、ターミナルを開き、以下にリストされているコマンドの1つを実行します。

Ubuntu / Debianシステムの場合:

sudo apt install openssh-client

CentOS / RHELシステムの場合:

sudo yum install openssh-client

SSHデーモンがサーバーにインストールされていません

リモートサーバーにアクセスするためにSSHのクライアントバージョンが必要なのと同じように、接続をリッスンして受け入れるにはサーバーバージョンが必要です。したがって、SSHサーバーがないか、セットアップが無効な場合、サーバーは着信接続を拒否する可能性があります。

リモートサーバーでSSHが使用可能かどうかを確認するには、次のコマンドを実行します。

ssh localhost

出力が「接続が拒否されました」と応答した場合 "、サーバーへのSSHのインストールに進みます。

解決策:リモートサーバーにSSHをインストールする

SSHサーバーが見つからない問題を修正するには、OpenSSHサーバーのインストール方法を参照してください。

クレデンシャルが間違っています

SSH接続が拒否される一般的な理由は、タイプミスまたは誤ったクレデンシャルです。 ユーザー名のタイプを間違えていないことを確認してください またはパスワード

次に、正しいIPアドレスを使用しているかどうかを確認します サーバーの。

最後に、正しいSSHポートがあることを確認します 開いた。次のコマンドを実行して確認できます:

grep Port /etc/ssh/sshd_config

下の画像のように、出力にはポート番号が表示されます。

SSHサービスがダウンしています

SSHサービスを有効にして、バックグラウンドで実行する必要があります。サービスがダウンしている場合、SSHデーモンは接続を受け入れることができません。

サービスのステータスを確認するには、次のコマンドを入力します:

sudo service ssh status

出力は、サービスがアクティブであることを応答する必要があります。サービスがダウンしていると端末が応答した場合は、問題を解決できるようにします。

解決策:SSHサービスを有効にする

SSHデーモンがアクティブでないことがシステムに示されている場合は、次のコマンドを実行してサービスを開始できます。

systemctl start sshd

起動時にサービスを実行できるようにするには、次のコマンドを実行します。

sudo systemctl enable sshd

ファイアウォールがSSH接続を妨げています

SSHは、ファイアウォールの制限により接続を拒否できます。ファイアウォールは、潜在的に有害な接続からサーバーを保護します。ただし、システムにSSHを設定している場合は、SSH接続を許可するようにファイアウォールを構成する必要があります。

接続が拒否されました」の原因となる可能性があるため、ファイアウォールがSSH接続をブロックしないようにしてください 「エラー。

解決策:ファイアウォールを介したSSH接続を許可する

上記の問題を修正するには、 ufwを使用できます (複雑でないファイアウォール)、ファイアウォール構成を管理するためのコマンドラインインターフェイスツール。

ターミナルウィンドウに次のコマンドを入力して、SSH接続を許可します。

sudo ufw allow ssh

SSHポートが閉じています

リモートサーバーへの接続を試みると、SSHは特定のポートに要求を送信します。このリクエストを受け入れるには、サーバーでSSHポートを開いている必要があります。

ポートが閉じている場合、サーバーは接続を拒否します。

デフォルトでは、SSHはポート22を使用します。ポートの構成を変更していない場合は、サーバーが着信要求をリッスンしているかどうかを確認できます。

リッスンしているすべてのポートを一覧表示するには、次のコマンドを実行します。

sudo lsof -i -n -P | grep LISTEN

出力でポート22を見つけ、その STATEかどうかを確認します LISTENに設定されています 。

または、特定のポート(この場合はポート22)が開いているかどうかを確認できます。

sudo lsof -i:22

解決策:SSHポートを開きます

ポート22がリクエストをリッスンできるようにするには、 iptablesを使用します コマンド:

sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

ファイアウォールの設定を変更することで、GUIからポートを開くこともできます。

SSHのデバッグとロギング

LinuxでSSHの問題を分析するには、詳細モードをオンにします。 またはデバッグ モード 。このモードを有効にすると、SSHは、接続、構成、および認証に関する問題のトラブルシューティングに役立つデバッグメッセージを出力します。

冗長性には3つのレベルがあります:

  • レベル1( -v
  • レベル2( -vv
  • レベル3( -vvv

したがって、構文 ssh [server_ip]を使用してリモートサーバーにアクセスする代わりに -vを追加します オプションと実行:

ssh -v [server_ip]

または、次を使用することもできます:

ssh -vv [server_ip]

または

ssh -vvv [server_ip]

Ubuntu
  1. SSH接続タイムアウトを増やす方法

  2. ssh接続の速度を確認する方法

  3. 修正::LinuxSSHエラー接続が拒否されました

  1. LAN内からのSSH接続が拒否されましたか?

  2. Sshトンネルを介してインターネットをルーティングする方法は?

  3. プロキシの背後にいるときに wget 接続拒否エラーを修正する方法

  1. BMCリモートコンソール機能を使用してサーバーに接続する方法

  2. 「ホストキーの検証に失敗しました」というエラーを修正する方法

  3. SSH 接続を終了するにはどうすればよいですか?