Computer Linux

So verwenden Sie SSH zum Herstellen einer Verbindung zu einem Remote-Server unter Linux

So verwenden Sie SSH zum Herstellen einer Verbindung zu einem Remote-Server unter Linux

Wenn Sie neu in der Welt der Systemadministration sind und Remote-Server warten und überwachen müssen, ist es wichtig, Secure Shell (SSH) für den Remote-Zugriff zu beherrschen. Mit SSH können Sie von überall aus eine sichere Verbindung zu Ihren Servern herstellen und diese verwalten, was eine effiziente Verwaltung und erhöhte Sicherheit gewährleistet. In diesem Handbuch erklären wir Ihnen, wie Sie mit SSH eine Verbindung zu einem Remote-Server unter Linux herstellen.

Was bedeutet SSH?

SSH steht für „Sichere Shell„, ein kryptografisches Netzwerkprotokoll, mit dem Sie eine Verbindung zu einem Remote-Server unter Windows, Linux und macOS herstellen können. Es bietet einen sicheren und authentifizierten Kanal, über den Sie Daten zwischen dem Client und dem Server übertragen können. Mit SSH können Sie sich auch sicher an einem Remote-System anmelden. Einige der Hauptfunktionen von SSH sind:

  • Verschlüsselung: Alle über SSH ausgetauschten Daten werden vollständig mit symmetrischer Verschlüsselung, asymmetrischer Verschlüsselung oder Hashing eines der sehr starken Verschlüsselungsalgorithmen verschlüsselt, wodurch die Benutzerdaten geschützt werden. Eine solche Verschlüsselung stellt sicher, dass sensible Daten, einschließlich Anmeldeinformationen, Befehle und Dateien, nicht von Hackern oder Bedrohungsakteuren abgefangen oder manipuliert werden können.
  • Authentifizierung: SSH verwendet die Authentifizierung, um jede eingehende Anmeldeanfrage zu überprüfen. Es unterstützt zwei Arten von Authentifizierungsprotokollen:
    • Passwortbasierte Authentifizierung – Bei diesem Authentifizierungsmodus gibt der Benutzer einen registrierten Benutzernamen und ein Passwort ein, um sich zu authentifizieren. Dies ist die gebräuchlichste Methode, um über SSH eine Verbindung zu einem Remote-Linux-Server herzustellen.
    • SSH-Schlüsselpaar-basierte Authentifizierung – Bei diesem Authentifizierungsmodus wird ein Paar kryptografischer Schlüssel generiert: ein öffentlicher Schlüssel, der auf dem Remote-Server gespeichert ist, und ein privater Schlüssel, der auf dem System des Benutzers gespeichert ist. Wenn der Benutzer versucht, sich anzumelden, werden die Schlüssel dann verwendet, um die Identität des Benutzers zu bestätigen. Diese Methode ist eine sehr sichere Methode und erspart dem Benutzer die Anmeldung mit einem Passwort.
  • Plattformunabhängigkeit: Mit SSH können Sie eine Verbindung zu jedem Remote-Server herstellen, unabhängig vom Host-Betriebssystem. Es ist für Linux, Windows und macOS verfügbar.
  • Vielseitigkeit: Mit SSH können Sie sich nicht nur bei einem Remote-System anmelden, sondern mit dem scp-Befehl auch Dateien über SSH senden.

So installieren Sie OpenSSH unter Linux

Es stehen verschiedene Arten von SSH-Software sowohl für Server als auch für Clients zur Verfügung, z. B. Teleport, wolfSSH, OpenSSH usw. Die am weitesten verbreitete SSH-Software ist jedoch OpenSSH. OpenBSD Secure Shell oder OpenSSH, wie es allgemein genannt wird, wurde erstmals am 1. Dezember 1999 als plattformübergreifende, kostenlose und Open-Source-Software veröffentlicht. Im Folgenden haben wir den Prozess der Installation von OpenSSH unter Linux demonstriert.

Installieren Sie den OpenSSH-Client

Um eine Verbindung zu einem Remote-Linux-Server herzustellen, muss „OpenSSH Client“ auf Ihrem System installiert sein. Führen Sie zur Installation die folgenden Schritte aus:

1. Verwenden Sie den für Ihre Linux-Distribution spezifischen Befehl, um den OpenSSH-Client auf Ihrem System zu installieren. Für dieses Handbuch verwenden wir ein Debian-basiertes System.

  • Für Debian-basierte Systeme:
sudo apt-get install openssh-client
  • Für Fedora-basierte Systeme:
sudo dnf install openssh-client
Installation des OpenSH-Clients in Debian

2. Um zu überprüfen, ob der SSH-Client korrekt installiert wurde oder nicht, führen Sie einfach diesen Befehl aus. Sie erhalten eine Ausgabe ähnlich dem folgenden Screenshot.

ssh
Überprüfung der SSH-Installation

Installieren Sie den OpenSSH-Server

Wenn Sie bei einem gängigen Cloud-Computing-Anbieter eine neue Remote-Server-Instanz erstellen, ist diese grundsätzlich mit serverseitiger SSH-Software vorinstalliert, häufig mit OpenSSH Server. Im Falle eines „On-Premise“-Servers müssen Sie ihn jedoch möglicherweise manuell installieren. Befolgen Sie diese Schritte, um den OpenSSH-Server auf Ihrem Remote-Server zu installieren:

1. Überprüfen Sie zunächst mit diesem Befehl, ob der OpenSSH-Server auf dem System installiert ist oder nicht.

ssh localhost
Überprüfen Sie, ob der SSH-Server installiert ist oder nicht

Wenn Sie diese Art von Ausgabe sehen, bedeutet das, dass der SSH-Server nicht installiert ist und Sie ihn manuell installieren müssen.

2. Verwenden Sie den distro-spezifischen Befehl, um den OpenSSH-Server zu installieren:

  • Debian-basierte Linux-Systeme:
sudo apt-get install openssh-server
  • RedHat/Fedora-basierte Systeme:
sudo dnf install openssh-server
Installieren des OpenSH-Servers auf einem Remote-Linux-Server

3. Überprüfen Sie nach der Installation mit diesem Befehl, ob der SSH-Server ausgeführt wird oder nicht. In einigen Fällen startet der SSH-Server von selbst, ohne dass Sie einen Befehl ausführen müssen.

sudo service ssh status

Wenn es noch nicht aktiviert ist, wird eine Ausgabe mit der Meldung „inaktiv (tot)“ angezeigt.

Überprüfen des Status des SSH-Dienstes

4. Falls inaktiv angezeigt wird, verwenden Sie diesen Befehl, um es zu aktivieren:

sudo service ssh start
Aktivieren des SSH-Dienstes

5. Um zu überprüfen, ob es ausgeführt wird oder nicht, verwenden Sie diesen Befehl erneut:

sudo service ssh status

Diesmal sehen Sie einen grünen Punkt vor dem Namen und „aktiv(läuft)“.

Der SSH-Dienst ist bereit, eine Verbindung zum Remote-Linux-Server herzustellen

SSH-Befehl unter Linux: Syntax und Optionen

Nachdem Sie SSH nun eingerichtet und ausgeführt haben, sehen wir uns die Syntax und die verschiedenen Optionen an, die Sie damit koppeln können:

ssh <options> <username>@<remote_server_ip_address_or_domain_name>

Einige der allgemeinen Optionen, die Sie mit dem SSH-Befehl koppeln können, sind:

Möglichkeit Beschreibung
-4 Ermöglicht nur die Verbindung mit IPv4-Adressen.
-6 Ermöglicht die GUI-Weiterleitung (für X11-basierte Systeme)
-A Aktiviert die Weiterleitung der Authentifizierungsagentenverbindung.
-C Komprimiert alle übertragenen Daten für eine schnellere Übertragungsrate.
-P Wird verwendet, um die Portnummer für die Verbindung mit dem Remote-Server anzugeben.
-X Ermöglicht die GUI-Weiterleitung (für X11-basierte Systeme)

Stellen Sie über SSH eine Verbindung zu einem Remote-Linux-Server her

Nachdem Sie die Syntax und Optionen für den SSH-Befehl kennengelernt haben, ist es nun an der Zeit zu sehen, wie Sie über SSH eine Verbindung zu einem Remote-Linux-Server herstellen. Verwenden Sie dazu eine der unten genannten Methoden.

Verbinden Sie sich mit dem SSH-Befehl

1. Notieren Sie sich zunächst die IP-Adresse des Remote-Servers, mit dem Sie eine Verbindung herstellen möchten. Wenn Sie die IP-Adresse nicht kennen, verwenden Sie diesen Befehl, um die öffentliche IP-Adresse auszudrucken:

curl ifconfig.me
Öffentliche IP des Remote-Linux-Servers zum Herstellen einer Verbindung über SSH

Wenn Ihr System mit demselben Netzwerk wie der Remote-Server verbunden ist, verwenden Sie diesen Befehl:

ip addr

Für zusätzliche Sicherheit wird empfohlen, einen Remote-Server über ein VPN zu verbinden. Schauen Sie sich unseren Leitfaden dazu an, was ein VPN ist und wie es funktioniert.

2. Verwenden Sie nun diesen Befehl, um eine Verbindung zum Remote-Server herzustellen:

ssh <username>@<remote_server_ip_address_or_domain_name>

3. Geben Sie das Passwort für den Benutzernamen ein, mit dem Sie sich anmelden möchten, und drücken Sie die Eingabetaste.

4. Sobald Sie sich erfolgreich beim Remote-Server angemeldet haben, wird ein Begrüßungsbildschirm wie unten gezeigt angezeigt.

Verwenden von SSH, um eine Verbindung zu einem Remote-Linux-Server herzustellen

In diesem Fall lautet die IP unseres Remote-Servers „172.105.253.48“ und der Benutzername ist „root“:

Melden Sie sich mit Ihrem SSH-Schlüssel an

Die auf SSH-Schlüsseln basierende Authentifizierung bietet im Vergleich zur passwortbasierten Authentifizierung mehr Sicherheit und Komfort, erfordert jedoch einige anfängliche Einrichtungsschritte. Dabei erfolgt die Authentifizierung mithilfe eines Paares kryptografischer Schlüssel – eines öffentlichen Schlüssels, der auf dem Remote-Server platziert wird, und eines privaten Schlüssels, der beim Client aufbewahrt wird. Dadurch entfällt die mühsame Eingabe des Passworts durch den Benutzer. Befolgen Sie diese Schritte, um die passwortlose Anmeldung mit SSH einzurichten:

1. Generieren Sie mit diesem Befehl ein neues SSH-Schlüsselpaar auf Ihrem lokalen System:

ssh-keygen -t rsa

Dieser Befehl verwendet den berühmten RSA-Algorithmus (Rivest-Shamir-Adleman), um das Schlüsselpaar zu generieren. Sie können jeden anderen Algorithmus Ihrer Wahl verwenden, z. B. Diffie – Hellman Key Exchange (DHE), Digital Signature Algorithm (DSA) usw.

Generieren eines neuen SSH-Schlüsselpaars

2. Sie werden nun nach dem Speicherort für den Schlüssel gefragt. Geben Sie den Pfad ein, in dem Sie speichern möchten, oder lassen Sie das Feld leer, um es am Standardspeicherort „~/.ssh/id_rsa“ zu speichern, und drücken Sie die Eingabetaste.

3. Als nächstes werden Sie zur Eingabe einer Passphrase aufgefordert. Geben Sie eine sichere Passphrase ein oder lassen Sie das Feld leer und drücken Sie die Eingabetaste.

Passphrase zum Generieren eines SSH-Schlüsselpaars

4. Sobald Ihre Schlüssel generiert wurden, sehen Sie eine Erfolgsmeldung zusammen mit einer „Zufallsart“ des Schlüssels.

randomart für die generierten SSH-Schlüssel

5. Übertragen Sie nun mit diesem Befehl den öffentlichen SSH-Schlüssel auf den Remote-Server. Sie können den öffentlichen RSA-Schlüssel auch mit dem Befehl scp sicher übertragen.

ssh-copy-id <username>@<remote_server>
Übertragen generierter SSH-Schlüssel an den Remote-Linux-Server

6. Sobald Sie mit den oben genannten Schritten fertig sind, verwenden Sie einfach den SSH-Befehl mit der folgenden Syntax, um sich ohne Passwort anzumelden:

ssh <username>@<remote_server_ip_address_or_domain_name>
Verwenden Sie ein SSH-Schlüsselpaar, um eine Verbindung zu einem Remote-Linux-Server herzustellen

Stellen Sie über die SSH-Konfigurationsdatei eine Verbindung zum Server her

Jedes Mal, wenn eine neue SSH-Verbindung hergestellt wird, funktioniert der SSH-Befehl gemäß den in der SSH-Konfigurationsdatei gespeicherten Konfigurationen. Mit etwas Bearbeitungsmagie können Sie über diese SSH-Konfigurationsdatei angeben, zu welchem ​​Remote-Linux-Server und -Port usw. eine Verbindung hergestellt werden soll.

1. Öffnen Sie die SSH-Konfigurationsdatei mit Nano Commandin Linux oder einem anderen Linux-Texteditor Ihrer Wahl.

sudo nano ~/.ssh/config

Dadurch wird die benutzerspezifische Konfigurationsdatei geöffnet. Verwenden Sie diesen Befehl, um die Konfigurationsdatei für alle Benutzer zu öffnen

sudo nano /etc/ssh/ssh_config
SSH-Konfigurationsdatei öffnen

2. Verwenden Sie nun diese Syntax, um die Konfigurationsdatei zu bearbeiten:

Host <remote_server_1_name>
    ssh_option_1 value
    ssh_option_2 value

Host <remote_server_2_name>
    ssh_option_1 value
    ssh_option_2 value

In der obigen Syntax sind die ssh_options dieselben Optionen, die Sie mit dem Befehl ssh koppeln. Hier ist ein Beispiel der Konfigurationsdatei:

Host remote_1
    HostName 192.168.1.10
    User test1
    Port 22

Host remote2
    HostName 172.105.253.48
    User root
    Port 22
Bearbeiten der SSH-Konfigurationsdatei

Hier haben wir Einträge für zwei Remote-Server zusammen mit ihren Optionen erstellt. Sie können beliebig viele Remote-Server zusammen mit ihren Optionen angeben.

3. Sobald Sie mit der Bearbeitung der Konfigurationsdatei fertig sind, speichern Sie den Editor und beenden Sie ihn.

4. Um mithilfe der SSH-Konfigurationsdatei eine Verbindung zu einem Remote-Server herzustellen, verwenden Sie diese Syntax:

ssh <remote_server_name>

Um beispielsweise eine Verbindung zum Remote2-Server herzustellen, verwenden Sie den folgenden Befehl:

ssh remote2
Verwenden der SSH-Konfigurationsdatei, um eine Verbindung zu einem Remote-Linux-Server herzustellen

Häufig gestellte Fragen

Wie liste ich alle SSH-Sitzungen unter Linux auf?

Um alle SSH-Verbindungen unter Linux aufzulisten, verwenden Sie diesen Befehl: ss -t -a

Ist SSH immer auf Port 22?

Standardmäßig lässt der SSH-Server eingehende Verbindungen auf Port 22 zu. Um SSH auf einem anderen Port zu aktivieren, öffnen Sie die Datei /etc/ssh/ssh_config in einem Linux-Texteditor und legen Sie den Port auf einen beliebigen Wert zwischen 1024 und 65536 fest.

Similar Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert