Wie man prüft, ob ein SSH-Server in Linux läuft

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie prüfen können, ob ein SSH-Server auf einem Linux-System läuft. Sie verwenden den Befehl systemctl status ssh, um den Laufzustand des Dienstes zu überprüfen, den Befehl ss -tuln, um zu prüfen, ob der SSH-Port geöffnet und im Listening-Modus ist, und den Befehl cat /etc/ssh/sshd_config, um die SSH-Server-Konfigurationsdatei zu untersuchen. Diese Schritte sind grundlegend für die Fehlerbehebung und die Überprüfung der Funktionalität des SSH-Servers.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/SystemInformationandMonitoringGroup -.-> linux/service("Service Managing") linux/RemoteAccessandNetworkingGroup -.-> linux/netstat("Network Monitoring") subgraph Lab Skills linux/cat -.-> lab-558785{{"Wie man prüft, ob ein SSH-Server in Linux läuft"}} linux/service -.-> lab-558785{{"Wie man prüft, ob ein SSH-Server in Linux läuft"}} linux/netstat -.-> lab-558785{{"Wie man prüft, ob ein SSH-Server in Linux läuft"}} end

Überprüfen des SSH-Dienstes mit systemctl status ssh

In diesem Schritt lernen Sie, wie Sie den Status des SSH-Dienstes auf Ihrem Linux-System überprüfen können. SSH (Secure Shell) ist ein Protokoll, das zur sicheren Verbindung mit einem Remotecomputer verwendet wird. Es ist ein grundlegendes Werkzeug für die Systemadministration und Entwicklung.

Unter Linux werden Dienste wie SSH häufig von systemd, einem System- und Dienstmanager, verwaltet. Der Befehl systemctl wird verwendet, um mit systemd zu interagieren.

Um den Status des SSH-Dienstes zu überprüfen, verwenden Sie den Befehl systemctl status, gefolgt vom Namen des Dienstes, der ssh ist.

Öffnen Sie Ihr Terminal, wenn es noch nicht geöffnet ist. Sie können das Symbol für das Xfce Terminal auf der linken Seite Ihres Desktops finden.

Geben Sie den folgenden Befehl in das Terminal ein und drücken Sie die Eingabetaste:

systemctl status ssh

Sie werden eine Ausgabe ähnlich der folgenden sehen:

● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since ...
       Docs: man:sshd(8)
             man:ssh(1)
   Main PID: ... (sshd)
      Tasks: 1 (limit: ...)
     Memory: ...
        CPU: ...
     CGroup: /system.slice/ssh.service
             └─... /usr/sbin/sshd -D

...

Lassen Sie uns die wichtigen Teile der Ausgabe analysieren:

  • ● ssh.service: Dies ist der Name des Dienstes.
  • Loaded: loaded (...): Gibt an, dass die Dienstkonfigurationsdatei von systemd geladen wurde.
  • Active: active (running): Dies ist der wichtigste Teil. Es zeigt an, dass der SSH-Dienst derzeit läuft. Wenn er gestoppt wäre, würde es etwas wie inactive (dead) anzeigen.
  • since ...: Zeigt an, wann der Dienst gestartet wurde.
  • Main PID: ... (sshd): Die Prozess-ID des Haupt-SSH-Daemon-Prozesses (sshd).

Dieser Befehl ist unerlässlich für die Fehlerbehebung von Netzwerkverbindungsstörungen oder die Überprüfung, ob ein Dienst wie erwartet läuft.

Klicken Sie auf Weiter, um mit dem nächsten Schritt fortzufahren.

Überprüfen des SSH-Ports mit ss -tuln

In diesem Schritt lernen Sie, wie Sie überprüfen können, welche Netzwerkports auf Ihrem System geöffnet und im Listening-Modus sind. Dies ist entscheidend, um zu verstehen, wie Dienste wie SSH zugänglich sind.

Der Befehl ss ist ein Werkzeug zur Untersuchung von Sockets. Sockets sind Endpunkte zum Senden und Empfangen von Daten über ein Netzwerk. Wir verwenden ss mit mehreren Optionen, um die Ausgabe zu filtern:

  • -t: Zeigt TCP-Sockets an. SSH verwendet das TCP-Protokoll.
  • -u: Zeigt UDP-Sockets an.
  • -l: Zeigt Listening-Sockets an. Dies sind Sockets, die auf eingehende Verbindungen warten.
  • -n: Löst keine Dienstnamen auf. Dies zeigt Portnummern anstelle von Namen wie ssh oder http.

Kombinieren Sie diese Optionen, um alle Listening-TCP- und UDP-Ports mit ihren numerischen Werten anzuzeigen.

Geben Sie den folgenden Befehl in Ihr Terminal ein und drücken Sie die Eingabetaste:

ss -tuln

Sie werden eine Ausgabe sehen, die verschiedene Listening-Ports auflistet. Suchen Sie die Zeile, die sich auf SSH bezieht, das normalerweise auf Port 22 lauscht. Die Ausgabe könnte in etwa so aussehen (die genaue Reihenfolge und andere Ports können variieren):

Netid  State   Recv-Q  Send-Q   Local Address:Port   Peer Address:Port
tcp    LISTEN  0       128            0.0.0.0:22          0.0.0.0:*
tcp    LISTEN  0       128               [::]:22             [::]:*
udp    UNCONN  0       0              127.0.0.53%lo:53          0.0.0.0:*
udp    UNCONN  0       0                    0.0.0.0:68          0.0.0.0:*

In dieser Ausgabe:

  • Netid: Das Netzwerkprotokoll (tcp oder udp).
  • State: Der Zustand des Sockets (LISTEN bedeutet, dass er auf Verbindungen wartet).
  • Local Address:Port: Die lokale IP-Adresse und die Portnummer, auf der der Dienst lauscht. 0.0.0.0 bedeutet, dass er auf allen verfügbaren IPv4-Adressen lauscht, und [::] bedeutet, dass er auf allen verfügbaren IPv6-Adressen lauscht.
  • Peer Address:Port: Die Adresse und der Port der Remote-Verbindung (für Listening-Sockets ist dies *).

Sie sollten Zeilen sehen, die anzeigen, dass TCP-Port 22 im LISTEN-Zustand ist. Dies bestätigt, dass der SSH-Dienst läuft und bereit ist, Verbindungen auf dem Standard-SSH-Port anzunehmen.

Das Verständnis, wie man offene Ports überprüft, ist eine grundlegende Fähigkeit für die Netzwerkfehlerbehebung und Sicherheit.

Klicken Sie auf Weiter, um zum nächsten Schritt zu gelangen.

Prüfen der SSH-Konfiguration mit cat /etc/ssh/sshd_config

In diesem letzten Schritt werden Sie die Hauptkonfigurationsdatei für den SSH-Server untersuchen. Diese Datei enthält Einstellungen, die steuern, wie der SSH-Dienst funktioniert, wie z. B. auf welchem Port er lauscht, welche Benutzer sich verbinden dürfen und welche Sicherheitsoptionen aktiviert sind.

Die Konfigurationsdatei für den SSH-Daemon (sshd) befindet sich normalerweise unter /etc/ssh/sshd_config. Das Verzeichnis /etc ist der Speicherort für Systemkonfigurationsdateien.

Um den Inhalt dieser Datei anzuzeigen, können Sie den Befehl cat verwenden. cat ist ein einfacher Befehl, der Dateien sequenziell liest und sie an die Standardausgabe (Ihr Terminal) ausgibt.

Geben Sie den folgenden Befehl in Ihr Terminal ein und drücken Sie die Eingabetaste:

cat /etc/ssh/sshd_config

Sie werden den gesamten Inhalt der sshd_config-Datei in Ihrem Terminal sehen. Die Ausgabe enthält viele Zeilen, einige beginnen mit # (dies sind Kommentare, die vom System ignoriert werden), andere definieren Konfigurationsoptionen.

Suchen Sie nach Zeilen, die nicht auskommentiert sind (nicht mit # beginnen). Einige wichtige Direktiven, die Sie möglicherweise sehen, sind:

  • Port 22: Dies gibt den Port an, auf dem der SSH-Server lauscht. Standardmäßig ist es Port 22.
  • ListenAddress 0.0.0.0: Gibt die IPv4-Adresse an, auf der der Server lauscht.
  • ListenAddress ::: Gibt die IPv6-Adresse an, auf der der Server lauscht.
  • PermitRootLogin prohibit-password: Steuert, ob der Root-Benutzer direkt über SSH einloggen kann.
  • PasswordAuthentication yes: Steuert, ob die Passwortauthentifizierung erlaubt ist.
## This is the sshd server system configuration file.
## See sshd_config(5) for more information.

## The systemd service file for sshd uses EnvironmentFile to load
## the SSHD_CONFIG environment variable, setting this to /etc/ssh/sshd_config.
## ...

Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key

## Ciphers and keying
#...

## Authentication:
LoginGraceTime 2m
PermitRootLogin prohibit-password
StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

#PubkeyAuthentication yes

## Expect .ssh/authorized_keys2 to be disregarded by default in future.
#AuthorizedKeysFile	.ssh/authorized_keys .ssh/authorized_keys2

#IgnoreRhosts yes
#RhostsRSAAuthentication no
#HostbasedAuthentication no
#...

PasswordAuthentication yes
#PermitEmptyPasswords no

ChallengeResponseAuthentication no

#...

Das Lesen von Konfigurationsdateien wie dieser ist eine Schlüsselkompetenz für das Verständnis und die Verwaltung von Linux-Diensten. Obwohl Sie in diesem Lab die Datei nicht ändern werden, ist es sehr nützlich zu wissen, wo sie sich befindet und wie Sie ihren Inhalt anzeigen können.

Sie haben nun erfolgreich den Status des SSH-Dienstes überprüft, seinen Listening-Port verifiziert und seine Konfigurationsdatei untersucht. Sie haben wertvolle Erfahrungen mit grundlegenden Linux-Befehlen für die Dienstverwaltung und Netzwerkprüfung gesammelt.

Klicken Sie auf Weiter, um das Lab abzuschließen und Ihren Fortschritt zu sehen!

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie überprüfen können, ob ein SSH-Server auf einem Linux-System läuft. Sie haben den Befehl systemctl status ssh verwendet, um den aktiven Zustand des Dienstes zu überprüfen und wichtige Details wie seinen geladenen Status, aktiven Zustand und Prozess-ID zu verstehen. Dieser Befehl ist entscheidend, um zu bestätigen, dass der SSH-Dienst betriebsbereit ist.

Sie haben auch gelernt, wie Sie den SSH-Port mit dem Befehl ss -tuln überprüfen und die SSH-Konfigurationsdatei unter /etc/ssh/sshd_config mit dem Befehl cat untersuchen können. Diese Schritte geben weitere Einblicke in die Netzwerkkonfiguration und die Einstellungen des SSH-Servers.