7
September
2021
15:13

SSHD-Server und SSH-Client unter Linux einrichten

7 September 2021 15:13

Manchmal müssen Sie zur Konfiguration eine SSH-Verbindung zu Ihrem Heim- oder Arbeits-PC herstellen.

Installationsplan

  1. Installieren Sie SSHD auf einem Produktions-Ubuntu-Linux-Server.
  2. Konfigurieren Sie SSHD auf dem Server. Anstelle des Standard-TCP-Ports 22 für den SSH-Dienst verwenden wir in diesem Beispiel Port 22334.
  3. Der SSHD-Server muss ständig betriebsbereit sein. Lassen Sie den SSHD-Dienst starten.
  4. Die lokale UFW-Firewall muss so konfiguriert sein, dass sie externen Zugriff auf Port 22334/TCP ermöglicht.
  5. Wenn Sie eine Verbindung über das Internet herstellen möchten, müssen Sie vom WAN-Port des Routers, Port 22334, an die IP-Adresse des Computers im lokalen Netzwerk weiterleiten.
  6. Installieren Sie SSH auf dem MX-Linux-Client (Debian 11 „Buster“ oder Debian 12 „Bookworm“).
  7. Stellen Sie über SSH eine Verbindung vom Client zum Server her.

Am Ende des Artikels habe ich die X11-Weiterleitung angesprochen.

Schritt 1: Installieren Sie SSHD auf dem Server

Installation von SSHD unter Ubuntu Linux – die Parameter des Befehls apt-get geben den Namen des SSH-Metapakets an:

sudo apt-get install ssh

Dieser Befehl installiert Pakete openssh-client и openssh-server gleichzeitig.

Schritt 2. Einrichten eines SSHD-Servers

Einrichten von SSHD auf einem Computer, mit dem wir extern eine Verbindung herstellen
Zuerst kopiere ich nach bak, d. h. ich lege die ursprüngliche SSHD-Konfigurationsdatei beiseite:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.COPY

Korrigieren der Konfigurationsdatei nach Anleitung dabei ist zu berücksichtigen, dass die Anmeldung mit einem Passwort erfolgt.$

Ich habe es mit dem „Nano“-Editor behoben:

sudo nano /etc/ssh/sshd_config

Meine Konfigurationsdatei sshd_config ich zitiere unten (Sie können es kopieren und einfügen):

cat /etc/ssh/sshd_config | grep \#-v

Include /etc/ssh/sshd_config.d/*.conf
Port 22334
AddressFamily inet
ListenAddress 0.0.0.0
PermitRootLogin no
MaxAuthTries 6
MaxSessions 1
PasswordAuthentication yes
PermitEmptyPasswords no
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server

Schritt 3: Konfigurieren des SSHD-Dienstes für den Start auf dem Ubuntu-Server

Der SSHD-Dienst dient auf dem Server der Fernverwaltung des Servers und der Verbindung zu ihm von außen.

Zulassen, dass der SSHD-Dienst kontinuierlich ausgeführt wird, wenn das Betriebssystem startet – nach Dienstname ssh.service:

sudo systemctl enable ssh

Neustart des sshd-Daemons, um Änderungen an der Konfigurationsdatei auf dem Server (Host-PC) zu übernehmen.

sudo systemctl restart ssh

Der Dienstname ist eins - ssh. Der Name sshd ist ein Alias. Wenn Sie namentlich auf den SSH-Dienst zugreifen sudo systemctl enable sshd.service - команда не сработает (ошибка "Failed to restart sshd.service: Unit sshd.service not found."). Потому что основная служба называется ssh.service, а её псевдоним - sshd.service. Вывод: для управления службой sshd используется имя службы ssh. Команды sudo systemctl restart ssh и sudo systemctl restart sshd sie machen das Gleiche, aber das erste ist vorzuziehen.

Schritt 4: Konfigurieren Sie die lokale UFW-Firewall

Starten Sie ufw und lassen Sie es nach dem Neustart mit einem Befehl starten.

sudo systemctl enable --now ufw

Überprüfen Sie:

sudo systemctl status ufw

Um den „geheimen“ Port 22334 des SSHD-Servers in der Firewall zu öffnen, habe ich einen Befehl ausgeführt, der eine Zulassungsregel hinzufügt:

sudo ufw allow 22334

UFW-Firewallregeln anzeigen:

sudo ufw show added

Schritt 5. Portweiterleitung

Da ich die Aufgabe im lokalen Netzwerk getestet habe, überspringe ich diesen Punkt. Jeder kann die Weiterleitung eines „geheimen“ SSH-Ports an einem Internet-Router selbstständig konfigurieren. Bei Verwendung eines VPN-Tunnels ist eine Portweiterleitung selbstverständlich nicht notwendig.

Schritt 6. SSH auf einem Netbook mit MX Linux (Debian) installieren

Unter Debian unterscheidet sich der SSH-Installationsbefehl geringfügig von dem unter Ubuntu:

sudo apt-get install ssh

Schritt 7: Stellen Sie vom Client aus eine Verbindung zum SSH-Server her

Wenn der Server über eine statische „weiße“ IP-Adresse verfügt, erfolgt die Verbindung vom Client zu ihm mit dem Befehl

ssh user@123.45.67.8 -p 22334

Dabei ist user der Benutzername, der auf dem Server vorhanden sein muss.
123.45.67.8 - Server-IP-Adresse,
22334 – SSH-Port.

Wenn Sie zum ersten Mal eine Verbindung herstellen, wird eine Meldung über das Vertrauen in den Server angezeigt, die über die Tastatur mit „Ja“ beantwortet wird.
Dann müssen Sie eintreten Passwort auf Ihr Konto Benutzer, und Sie werden zur Serverkonsole (Terminalsitzung) weitergeleitet.

Wenn sich der Serverschlüssel/das Serverzertifikat geändert hat (z. B. weil das Betriebssystem neu installiert wurde), wird die Meldung „WARNUNG: REMOTE-HOST-IDENTIFIKATION HAS GEÄNDERT“ angezeigt und die Verbindung wird nicht hergestellt. Wenn Sie sicher sind, dass mit der Maschine alles in Ordnung ist, der Server einfach neu installiert wurde, führen Sie auf dem Client die Entfernung des alten Fingerabdrucks des Serverzertifikats (Fingerabdruck) durch, mit dem Befehl, der in der Nachricht geschrieben wird, zum Beispiel:ssh-keygen -f "/home/user/.ssh/known_hosts" -R "\[123.45.67.8\]:22334.

Fazit

Die Einstellung ist abgeschlossen. Die Anmeldung am Remote-Server über SSH ist abgeschlossen.

Nächste Schritte

Wenn Sie vorhaben, häufig von demselben Computer aus eine Verbindung zum Server herzustellen, können Sie anstelle des Kennwortschutzes eine Verbindung zum SSH-Server mithilfe von Zertifikaten konfigurieren, die vom Programm „ssh-keygen“ generiert wurden, wie in beschrieben Artikel itproffi.ru.

Lösung des Problems mit X11-Weiterleitung

(Nachtrag vom 15. November 2023).
Nachdem ich die Anweisungen befolgt hatte, erhielt ich Zugriff auf den Server im SSH-Textmodus, aber es war nicht möglich, vom Client-Terminal im X11-Weiterleitungsmodus (ssh -X ...) zu arbeiten und dann beim Ausführen grafischer Serveranwendungen auf dem Client, beispielsweise beim Start aus einer SSH-Sitzung xclock es ist ein Fehler aufgetreten „Localhost-Port 6000 verbinden: Verbindung abgelehnt. Fehler: Anzeige kann nicht geöffnet werden: localhost:10.0“. Dieses Problem wird im Client-Terminal in keiner Weise gelöst. Ich habe es so hinbekommen:

Auf dem Client:

sudo apt install putty

Dann -
Start – Internet – Putty SSH-Client

„Konfiguration“ - verbindung - SSH - komprimierung aktivieren
„Konfiguration“ - verbindung - SSH -X11-X11-Weiterleitung aktivieren
„Konfiguration“ - „Sitzung“- Geben Sie die IP-Adresse und den Port des Servers ein
„Konfiguration“ - „Sitzung“- gespeicherte Sitzungen -Mein- speichern

  • ausgewählt Mein
  • gedrückt „Offen“
  • Benutzername und Passwort eingegeben
  • bin in die Serversitzung eingestiegen
  • überprüfen:echo $DISPLAY должна выводить localhost:10.0. (Если это не так, выполнить export DISPLAY=:10.0)
    *xclock или `
  • xclock wurde auf dem Client-Bildschirm gestartet (läuft auf dem Server)! Hurra!
    sudo apt install xsysinfo
    xsysinfo- Informationen über die Server-Kernauslastung in Echtzeit.

    Links:

  • Beschreibung der Optionen in der Konfigurationsdatei sshd_config


Verwandte Veröffentlichungen