Dieses Tutorial konzentriert sich auf die Einrichtung und Konfiguration eines SSH-Servers auf einem Debian 10-Minimalserver
SSH , für Secure Shell , ist ein Netzwerkprotokoll, das verwendet wird, um entfernte Anmeldungen an entfernten Maschinen innerhalb eines lokalen Netzwerks oder über das Internet durchzuführen. SSH-Architekturen enthalten normalerweise einen SSH-Server, der von SSH-Clients verwendet wird, um eine Verbindung zum Remote-Computer herzustellen.
Als Systemadministrator verwenden Sie höchstwahrscheinlich täglich SSH, um eine Verbindung zu Remote-Rechnern in Ihrem Netzwerk herzustellen.
Wenn neue Hosts in Ihre Infrastruktur integriert werden, müssen Sie sie daher möglicherweise konfigurieren, um SSH darauf zu installieren und zu aktivieren.
In diesem Tutorial werden wir sehen, wie Sie SSH über OpenSSH installieren und aktivieren können , auf einer Debian 10-Distribution.
Voraussetzungen
Um einen SSH-Server auf Debian 10 zu installieren, benötigen Sie sudo-Berechtigungen auf Ihrem Host.
Um zu überprüfen, ob Sie sudo-Berechtigungen haben oder nicht, führen Sie den folgenden Befehl aus
$ sudo -l
Wenn Sie die folgenden Einträge auf Ihrem Terminal sehen, bedeutet dies, dass Sie über erhöhte Berechtigungen verfügen
Standardmäßig sollte das Dienstprogramm ssh auf Ihrem Host installiert sein, selbst bei minimalen Konfigurationen.
Um die Version Ihres SSH-Dienstprogramms zu überprüfen, können Sie den folgenden Befehl ausführen
$ ssh -V
Wie Sie sehen können, verwende ich OpenSSH v7.9 mit OpenSSL v1.1.1.
Beachten Sie, dass dies nicht bedeutet, dass SSH-Server auf meinem Host installiert sind, es bedeutet nur, dass ich möglicherweise als Client mit dem SSH-Dienstprogramm eine Verbindung zu Remote-Rechnern herstellen kann.
Es bedeutet auch, dass bestimmte Dienstprogramme im Zusammenhang mit dem SSH-Protokoll (z. B. scp) oder im Zusammenhang mit FTP-Servern (z. B. sftp) auf meinem Host verfügbar sein werden.
Installieren von OpenSSH Server auf Debian 10
Stellen Sie zunächst sicher, dass Ihre Pakete auf dem neuesten Stand sind, indem Sie einen Update-Befehl ausführen
$ sudo apt-get update
Um einen SSH-Server auf Debian 10 zu installieren, führen Sie den folgenden Befehl aus
$ sudo apt-get install openssh-server
Der Befehl sollte einen vollständigen Installationsprozess ausführen und alle erforderlichen Dateien für Ihren SSH-Server einrichten.
Wenn die Installation erfolgreich war, sollte jetzt ein sshd-Dienst auf Ihrem Host installiert sein.
Führen Sie den folgenden Befehl aus, um Ihren neu installierten Dienst zu überprüfen
$ sudo systemctl status sshd
Standardmäßig läuft Ihr SSH-Server auf Port 22.
Dies ist der Standardport, der für die SSH-Kommunikation zugewiesen wird. Sie können überprüfen, ob dies auf Ihrem Host der Fall ist, indem Sie den folgenden netstat-Befehl
ausführen$ netstat -tulpn | grep 22
Toll! Ihr SSH-Server ist jetzt auf Ihrem Debian 10-Host eingerichtet und läuft.
SSH-Verkehr in Ihren Firewall-Einstellungen aktivieren
Wenn Sie UFW als Standard-Firewall auf Ihrem Debian 10-System verwenden, müssen Sie wahrscheinlich SSH-Verbindungen auf Ihrem Host zulassen.
Führen Sie den folgenden Befehl aus, um SSH-Verbindungen auf Ihrem Host zu aktivieren
$ sudo ufw allow ssh
SSH-Server beim Systemstart aktivieren
Wie Sie wahrscheinlich gesehen haben, läuft Ihr SSH-Server jetzt als Dienst auf Ihrem Host.
Es ist auch sehr wahrscheinlich, dass es angewiesen wird, beim Booten zu starten.
Um zu überprüfen, ob Ihr Dienst aktiviert ist oder nicht, können Sie den folgenden Befehl ausführen
$ sudo systemctl list-unit-files | grep enabled | grep ssh
Wenn auf Ihrem Terminal keine Ergebnisse angezeigt werden, aktivieren Sie den Dienst und führen Sie den Befehl erneut aus
$ sudo systemctl enable ssh
Ihren SSH-Server auf Debian konfigurieren
Bevor Sie Benutzern über SSH Zugriff gewähren, ist es wichtig, eine Reihe sicherer Einstellungen zu haben, um Angriffe zu vermeiden, insbesondere wenn Ihr Server als Online-VPS ausgeführt wird.
Wie wir bereits in der Vergangenheit gesehen haben, sind SSH-Angriffe ziemlich häufig, aber sie können vermieden werden, wenn wir die verfügbaren Standardeinstellungen ändern.
Standardmäßig befinden sich Ihre SSH-Konfigurationsdateien unter /etc/ssh/
In diesem Verzeichnis finden Sie viele verschiedene Konfigurationsdateien, aber die wichtigsten sind:
- ssh_config :definiert SSH-Regeln für Clients. Das bedeutet, dass es Regeln definiert, die jedes Mal angewendet werden, wenn Sie SSH verwenden, um sich mit einem entfernten Host zu verbinden oder Dateien zwischen Hosts zu übertragen;
- sshd_config :definiert SSH-Regeln für Ihren SSH-Server. Es wird beispielsweise verwendet, um den erreichbaren SSH-Port zu definieren oder bestimmten Benutzern die Kommunikation mit Ihrem Server zu verweigern.
Wir werden offensichtlich den serverweiten Teil unseres SSH-Setups modifizieren, da wir daran interessiert sind, unseren OpenSSH-Server zu konfigurieren und zu sichern.
SSH-Standardport ändern
Der erste Schritt zum Betrieb eines sicheren SSH-Servers besteht darin, die vom OpenSSH-Server zugewiesene Standardeinstellung zu ändern.
Bearbeiten Sie Ihre Konfigurationsdatei sshd_config und suchen Sie nach der folgenden Zeile.
#Port 22
Stellen Sie sicher, dass Sie Ihren Port auf einen ändern, der nicht für andere Protokolle reserviert ist. Ich wähle in diesem Fall 2222.
Wenn Sie sich mit Ihrem Host verbinden und dieser nicht auf dem Standardport läuft, geben Sie den SSH-Port selbst an.
Weitere Informationen finden Sie im Abschnitt „Verbindung mit Ihrem SSH-Server herstellen“.
Stammanmeldung auf Ihrem SSH-Server deaktivieren
Standardmäßig ist die Root-Anmeldung auf Ihrem SSH-Server verfügbar.
Dies sollte natürlich nicht der Fall sein, da es eine komplette Katastrophe wäre, wenn sich Hacker als root auf Ihrem Server anmelden würden.
Wenn Sie zufällig das Root-Konto in Ihrer Debian 10-Installation deaktiviert haben, können Sie Ihren SSH-Server immer noch so konfigurieren, dass er die Root-Anmeldung verweigert, falls Sie sich entscheiden, Ihre Root-Anmeldung eines Tages wieder zu aktivieren.
Um die Root-Anmeldung auf Ihrem SSH-Server zu deaktivieren, ändern Sie die folgende Zeile
#PermitRootLogin
PermitRootLogin no
Konfigurieren der schlüsselbasierten SSH-Authentifizierung
In SSH gibt es zwei Möglichkeiten, sich mit Ihrem Host zu verbinden:durch die Verwendung einer Passwortauthentifizierung (was wir hier tun) oder durch einen Satz von SSH-Schlüsseln.
Wenn Sie neugierig auf die schlüsselbasierte SSH-Authentifizierung unter Debian 10 sind, finden Sie hier ein Tutorial zu diesem Thema.
Neustart Ihres SSH-Servers, um Änderungen zu übernehmen
Damit die Änderungen übernommen werden, starten Sie Ihren SSH-Dienst neu und vergewissern Sie sich, dass er korrekt neu gestartet wurde
$ sudo systemctl restart sshd
$ sudo systemctl status sshd
Wenn Sie den Standardport ändern, stellen Sie außerdem sicher, dass die Änderungen korrekt angewendet wurden, indem Sie einen einfachen netstat-Befehl
ausführen$ netstat -tulpn | grep 2222
Verbinden mit Ihrem SSH-Server
Um sich mit Ihrem SSH-Server zu verbinden, verwenden Sie den ssh-Befehl mit der folgenden Syntax
$ ssh -p <port> <username>@<ip_address>
Wenn Sie sich über ein LAN-Netzwerk verbinden, stellen Sie sicher, dass Sie die lokale IP-Adresse Ihres Computers mit dem folgenden Befehl abrufen
$ sudo ifconfig
Um beispielsweise eine Verbindung zu meiner eigenen Instanz unter 127.0.0.1 herzustellen, würde ich den folgenden Befehl ausführen
$ ssh -p 2222 <user>@127.0.0.1
Sie werden aufgefordert, Ihr Passwort einzugeben und zu bestätigen, dass die Authentizität des Servers korrekt ist.
Ihren SSH-Server verlassen
Um Ihren SSH-Server unter Debian 10 zu verlassen, können Sie Strg + D drücken oder „Logout“ eingeben und Ihre Verbindung wird beendet.
SSH-Server deaktivieren
Um Ihren SSH-Server unter Debian 10 zu deaktivieren, führen Sie den folgenden Befehl aus
$ sudo systemctl stop sshd
$ sudo systemctl status sshd
Von dort aus ist Ihr SSH-Server nicht mehr erreichbar.
Fehlerbehebung
In einigen Fällen können beim Versuch, einen SSH-Server unter Debian 10 einzurichten, viele Fehlermeldungen angezeigt werden.
Hier ist die Liste der häufigsten Fehler, die während der Einrichtung auftreten können.
Debian:SSH-Verbindung abgelehnt
Normalerweise erhalten Sie diesen Fehler, weil Ihre Firewall unter Debian nicht richtig konfiguriert ist.
Um „SSH-Verbindung abgelehnt“ zu lösen, müssen Sie Ihre UFW-Firewall-Einstellungen überprüfen.
Standardmäßig verwendet Debian UFW als Standard-Firewall, daher sollten Sie Ihre Firewall-Regeln überprüfen und sehen, ob SSH korrekt zugelassen ist.
$ sudo ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
Wenn Sie iptables verwenden, können Sie Ihre aktuellen IP-Regeln auch mit dem Befehl iptables überprüfen.
$ sudo iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
Wenn die Regel nicht für SSH festgelegt ist, können Sie sie festlegen, indem Sie den Befehl iptables erneut ausführen.
$ sudo iptables -I INPUT -p tcp -m tcp --dport 22 -j ACCEPT
Debian :SSH-Zugriff verweigert
Manchmal wird Ihnen der Zugriff auf Ihren SSH-Server mit dieser Fehlermeldung „SSH-Zugriff verweigert“ unter Debian verweigert.
Um dieses Problem zu lösen, hängt es von der Authentifizierungsmethode ab, die Sie verwenden.
SSH-Passwortzugriff verweigert
Wenn Sie die Passwortmethode verwenden, überprüfen Sie Ihr Passwort und vergewissern Sie sich, dass Sie es richtig eingegeben haben.
Außerdem ist es möglich, SSH-Server so zu konfigurieren, dass nur eine bestimmte Untergruppe von Benutzern zugelassen wird:Wenn dies der Fall ist, stellen Sie sicher, dass Sie zu dieser Liste gehören.
Wenn Sie sich schließlich als Root anmelden möchten, stellen Sie sicher, dass Sie die Option „PermitRootLogin“ in Ihrer Datei „sshd_config“ geändert haben.
#PermitRootLogin
PermitRootLogin yes
SSH-Schlüsselzugriff verweigert
Wenn Sie SSH-Schlüssel für Ihre SSH-Authentifizierung verwenden, müssen Sie möglicherweise noch einmal überprüfen, ob sich der Schlüssel korrekt in der Datei „authorized_keys“ befindet.
Wenn Sie sich nicht sicher sind, wie das geht, folgen Sie unserer Anleitung zur SSH-Schlüsselauthentifizierung unter Debian 10.
Debian:Paket openssh-server konnte nicht gefunden werden
Dafür müssen Sie sicherstellen, dass Sie Ihre APT-Repositories richtig eingestellt haben.
Fügen Sie Ihrer sources.list-Datei den folgenden Eintrag hinzu und aktualisieren Sie Ihre Pakete.
$ sudo nano /etc/apt/sources.list
deb http://ftp.us.debian.org/debian wheezy main
$ sudo apt-get update
Schlussfolgerung
In diesem Tutorial haben Sie gelernt, wie Sie einen SSH-Server auf Debian 10-Hosts installieren und konfigurieren können.
Sie haben auch grundlegende Konfigurationsoptionen kennengelernt, die angewendet werden müssen, um einen sicheren und robusten SSH-Server über ein LAN oder über das Internet zu betreiben.
Wenn Sie neugierig auf die Linux-Systemadministration sind, haben wir eine Menge Tutorials zu diesem Thema in einer eigenen Kategorie.