GNU/Linux >> LINUX-Kenntnisse >  >> Linux

SSH-Probleme beheben

Dieser Artikel zeigt Ihnen, wie Sie Probleme mit Secure Shell (SSH) auf einem Linux®-Server beheben.

Verschiedene Arten von Fehlern

Wenn Sie keine SSH-Verbindung zu einem Server herstellen können, sollten Sie auf die Fehler (oder deren Fehlen) achten, die Sie erhalten. Die folgende Liste beschreibt einige mögliche Fehler.

Zugriff verweigert oder Authentifizierung verweigert

Diese Art von Fehler tritt auf, wenn Sie sich über SSH mit falschen Anmeldeinformationen anmelden. Wenn Sie diesen Fehler erhalten, können Sie Folgendes überprüfen:

  • Stellen Sie sicher, dass Sie den Benutzernamen und das Passwort richtig eingegeben haben.
  • Wenn Sie ein SSH-Schlüsselpaar verwenden, vergewissern Sie sich, dass der private Schlüssel auf Ihrem lokalen Computer installiert ist.

Port 22:Verbindung abgelehnt

Dieser Fehler tritt aus folgenden Gründen auf:

  • SSH ist nicht installiert oder wird nicht ausgeführt.
  • SSH lauscht auf einem anderen Port.
  • Firewall-Regeln erlauben kein SSH.

Netzwerkfehler:Zeitüberschreitung der Verbindung

Dieser Fehler tritt häufig aufgrund von Netzwerkverbindungsproblemen auf dem Server oder Ihrem lokalen Computer auf. Wenn Sie diese Fehler erhalten, vergewissern Sie sich, dass Ihr lokaler Computer mit dem Internet verbunden ist. Wenn eine Verbindung besteht, überprüfen Sie auch die Serververbindung, um sicherzustellen, dass der Server ausgeführt wird.

Von außen prüfen

Hier sind einige gängige Methoden zur Fehlerbehebung bei SSH von außerhalb Ihres Servers:

nmap

nmap ist ein Tool zur Netzwerkerkundung und ein Sicherheits- oder Port-Scanner. Mit diesem Tool können Sie überprüfen, ob der Port für SSH auf dem Server geöffnet ist. Das folgende Beispiel stellt den Befehl und seine Ausgabe bereit:

$ 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

Mit ssh mit dem -vvv flags erzeugt eine ausführliche Ausgabe, wenn Sie sich per SSH auf dem Server anmelden. Dieser Befehl kann einige nützliche Informationen zur Fehlersuche liefern, wo genau das Problem liegen könnte.

Von innen prüfen

Wenn Sie Probleme mit SSH haben, können Sie sich über die Notfallkonsole anmelden, um Fehler am Server zu beheben und die folgenden Bedingungen zu überprüfen:

SSH-Prozess

Stellen Sie zunächst sicher, dass der SSH-Prozess ausgeführt wird, indem Sie den folgenden Befehl ausführen:

  • Für Ubuntu® 16.04+, Debian® 8+ und Centos® 7+:systemctl status sshd
  • Für Centos 6:service sshd status

Wenn der Dienst nicht ausgeführt wird, können Sie den Prozess mit dem folgenden Befehl starten:

  • Für Ubuntu 16.04+, Debian 8+ und Centos 7+:systemctl start sshd
  • Für Centos 6:service sshd start

netstat

Die netstat zeigt Ihnen die aktuellen Verbindungen auf dem Server an. Dieser Befehl ist eine gute Möglichkeit, um zu überprüfen, auf welchem ​​Port SSH ausgeführt wird. Wenn Sie netstat ausführen verwenden Sie die Flags -plnt um die folgende Ausgabe zu erhalten:

# 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-Konfigurationsdatei

Die SSH-Konfigurationsdatei /etc/ssh/sshd_config , legt die SSH-Konfiguration fest. Es gibt viele Optionen in der Konfigurationsdatei, aber hier sind einige, auf die Sie achten sollten:

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

Alternativ können Sie auch grep verwenden Befehl, um nach diesen bestimmten Zeilen zu suchen. Wenn Sie grep verwenden Befehl, müssen Sie spezifisch sein, wenn Sie nach einem bestimmten Ausdruck suchen. Achten Sie auf Zeichensetzung, Großschreibung und Rechtschreibung.

$ sudo grep Port /etc/ssh/sshd_config
#   Port 22

Die Firewall

Wenn Sie eine Netzwerkverbindung haben, alle Konfigurationen korrekt sind und Sie immer noch keine Verbindung über SSH herstellen können, sollten Sie sich Ihre Firewall-Regeln auf dem Server ansehen. Auf Linux-Servern iptables hat diese Regeln. Zum Auflisten der Firewall-Regeln in iptables , führen Sie den Befehl iptables -L aus . Um mehr über iptables zu erfahren , lesen Sie Einführung in iptables.

fail2ban

fail2ban ist eine Anwendung, die eine IP-Adresse nach einer bestimmten Anzahl fehlgeschlagener Anmeldeversuche blockiert. Um die Jails zu überprüfen, können Sie den Befehl fail2ban-client status ausführen . Dieser Befehl zeigt Ihnen alle konfigurierten Jails auf dem Server und die IP-Adressen, die sich in diesen Jails befinden.

Die Protokolldateien

Wenn alles andere fehlschlägt, gehen Sie zu den Protokolldateien. Diese Dateien geben Aufschluss darüber, ob Sie den Server erreichen, ob Sie ein ungültiges Passwort verwenden usw. Zu den Protokolldateien, die Sie überprüfen sollten, gehören die folgenden Dateien:

  • Ubuntu oder Debian:/var/log/auth.log
  • CentOS oder RHEL®:/var/log/secure

Beim Durchsuchen dieser Protokolldateien können Sie den less verwenden Befehl, um die gesamte Datei zu analysieren und nach einer bestimmten Zeit oder Zeichenfolge zu suchen. Wenn Sie sich über die Konsole beim Server angemeldet haben, können Sie tail -f verwenden in den Protokollen, während Sie versuchen, sich per SSH beim Server anzumelden. Dann können Sie die Aktualisierung der Protokolldateien in Echtzeit verfolgen.


Linux
  1. Wie man SSH unter Linux von Android aus macht

  2. Ssh – Eine laufende Anwendung auf einen anderen X-Server verschieben??

  3. Wie kann man mit einem anderen Server per SSH auf einen Server zugreifen?

  4. Fehlerbehebung bei einem ausgefallenen Linux-Cloud-Server

  5. Warum ist meine SSH-Anmeldung langsam?

So verwenden Sie SSH, um eine Verbindung zu einem Remote-Server herzustellen

SSH-Tunneling und Proxying

SSH-Server

So fügen Sie dem Server einen öffentlichen SSH-Schlüssel hinzu

12 Dinge, die nach der Installation eines Linux-Servers zu tun sind

So führen Sie SSH zum Server über Linux