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

SSHのトラブルシューティング

この記事では、Linux®サーバーでSecure Shell(SSH)のトラブルシューティングを行う方法について説明します。

さまざまな種類のエラー

サーバーにSSHで接続できない場合は、発生するエラー(またはエラーの欠如)に注意する必要があります。次のリストは、考えられるエラーの一部を示しています。

アクセスが拒否されたか認証が拒否されました

このタイプのエラーは、誤った資格情報を使用してSSH経由でログインするたびに発生します。このエラーが発生した場合は、次のことを確認できます。

  • ユーザー名とパスワードを正しく入力したことを確認してください。
  • SSHキーペアを使用している場合は、ローカルマシンに秘密キーがインストールされていることを確認してください。

ポート22:接続が拒否されました

このエラーは、次の理由で発生します。

  • SSHがインストールまたは実行されていません。
  • SSHは別のポートでリッスンしています。
  • ファイアウォールルールではSSHは許可されていません。

ネットワークエラー:接続がタイムアウトしました

このエラーは、サーバーまたはローカルマシンのネットワーク接続の問題が原因で発生することがよくあります。これらのエラーが発生した場合は、ローカルコンピューターがインターネットに接続されていることを確認してください。接続されている場合は、サーバー接続もチェックして、サーバーが実行されていることを確認します。

外部から確認

サーバーの外部からSSHをトラブルシューティングする一般的な方法は次のとおりです。

nmap

nmap は、ネットワーク探索ツールおよびセキュリティまたはポートスキャナーです。このツールを使用して、SSHのポートがサーバーで開いているかどうかを確認できます。次の例は、コマンドとその出力を示しています。

$ nmap <ip-address-of-host>

Starting Nmap 6.40 ( https://nmap.org ) at 2020-03-21 23:44 UTC
Nmap scan report for <ip-address-of-host>
Host is up (0.033s latency).
Not shown: 997 filtered ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
443/tcp open  https

Nmap done: 1 IP address (1 host up) scanned in 4.35 seconds

ssh -vvv

sshを使用する -vvvを使用 サーバーにSSHで接続すると、flagsは詳細な出力を生成します。このコマンドは、問題が発生する可能性のある場所を正確にトラブルシューティングするための有用な情報を提供します。

内側から確認

SSHに問題がある場合は、緊急コンソールを使用してログインし、サーバーのトラブルシューティングを行って、次の条件を確認できます。

SSHプロセス

まず、次のコマンドを実行して、SSHプロセスが実行されていることを確認します。

  • Ubuntu®16.04以降、Debian®8以降、Centos®7以降の場合:systemctl status sshd
  • Centos 6の場合:service sshd status

サービスが実行されていない場合は、次のコマンドを使用してプロセスを開始できます。

  • Ubuntu 16.04以降、Debian 8以降、Centos 7以降の場合:systemctl start sshd
  • Centos 6の場合:service sshd start

netstat

netstat コマンドは、サーバー上の現在の接続を表示します。このコマンドは、SSHが実行されているポートを確認するための良い方法です。 netstatを実行すると 、フラグ-plntを使用します 次の出力を取得するには:

# netstat -plnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp6       0      0 :::22                   :::*                    LISTEN      13631/sshd             

SSH構成ファイル

SSH構成ファイル/etc / ssh / sshd_config 、SSH構成を設定します。構成ファイルには多くのオプションがありますが、注意すべき点がいくつかあります。

Port 22            <---- The port ssh runs on
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

~
~
~

# Ciphers and keying
#RekeyLimit default none

# Logging
#SyslogFacility AUTH
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m
PermitRootLogin yes  <---- Allows or block users logging in as root
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

#PubkeyAuthentication yes  <---- Will state whether or not a user needs an ssh key to log in

または、grepを使用することもできます これらの特定の行を検索するコマンド。 grepを使用する場合 コマンドでは、特定のフレーズを検索するときに特定する必要があります。句読点、大文字と小文字、およびスペルに注意してください。

$ sudo grep Port /etc/ssh/sshd_config
#   Port 22
ファイアウォール

ネットワーク接続があり、すべての構成が正しく、SSH経由で接続できない場合は、サーバーのファイアウォールルールを確認することをお勧めします。 Linuxサーバーでは、 iptables これらのルールがあります。 iptablesにファイアウォールルールを一覧表示するには 、コマンドiptables -Lを実行します 。 iptablesの詳細については 、iptablesの概要をお読みください。

fail2ban

fail2ban は、一定回数のログイン試行の失敗後にIPアドレスをブロックするアプリケーションです。刑務所をチェックするには、コマンドfail2ban-client statusを実行できます。 。このコマンドは、サーバー上に構成されているすべてのjailと、それらのjail内にあるIPアドレスを表示します。

ログファイル

他のすべてが失敗した場合は、ログファイルに移動します。これらのファイルは、サーバーに到達しているかどうか、無効なパスワードを使用しているかどうかなどに関する情報を提供します。確認する必要のあるログファイルには、次のファイルが含まれます。

  • UbuntuまたはDebian: /var/log/auth.log
  • CentOSまたはRHEL®: / var / log / secure

これらのログファイルを検索するときは、lessを使用できます ファイル全体を解析し、特定の時間または文字列を探すコマンド。コンソールからサーバーにログインしている場合は、tail -fを使用できます。 サーバーにSSHで接続しようとしている間、ログに記録されます。その後、ログファイルの更新をリアルタイムで確認できます。


Linux
  1. AndroidからLinuxでSSH接続する方法

  2. Ssh –実行中のアプリケーションを別のXサーバーに移動しますか?

  3. 別のサーバーを使用してサーバーにSSH接続する方法は??

  1. ダウンしたLinuxクラウドサーバーのトラブルシューティング

  2. ダウンしたWindowsクラウドサーバーのトラブルシューティング

  3. SSH ログインが遅いのはなぜですか?

  1. Debian9または10でSSHを有効にする方法

  2. Ssh、Sudo、それからダウンロード?

  3. SQLServerへのリモートアクセスのトラブルシューティング