So stellen Sie mithilfe des grundlegenden SSH-Befehls eine Verbindung zu einem Remote-Server her
Meistern Sie den grundlegenden `ssh`-Befehl für den sicheren Zugriff auf Remote-Server. Diese essentielle Anleitung erläutert die Kernsyntax, einschließlich Benutzername, Host-Adresse und Optionen für benutzerdefinierte Ports (`-p`). Erfahren Sie, wie Sie Verbindungen sowohl mithilfe von Passwörtern als auch der sichereren schlüsselbasierten Authentifizierung (`-i`) herstellen. Dieser Artikel ist ideal für neue Benutzer und Administratoren und bietet praktische Beispiele und wichtige Tipps zur Fehlerbehebung, um jedes Mal eine robuste und effiziente Verbindung zu gewährleisten.
So stellen Sie mit dem grundlegenden SSH-Befehl eine Verbindung zu einem entfernten Server her
Secure Shell (SSH) ist die Standardmethode, um eine sichere Terminalsitzung auf einem entfernten Server zu öffnen. Wenn Sie eine Serveradresse, einen Benutzernamen und gültige Anmeldeinformationen haben, bringt Sie der grundlegende ssh-Befehl von Ihrem Laptop zu einer Shell auf diesem Rechner.
Die häufigsten Probleme sind normalerweise einfach: der falsche Benutzername, der falsche Port, ein fehlender privater Schlüssel oder eine Server-Host-Key-Abfrage, die Sie noch nicht gesehen haben.
Voraussetzungen für die Verbindung
Bevor Sie versuchen, eine Verbindung herzustellen, stellen Sie sicher, dass Sie die folgenden Komponenten bereit haben:
- SSH-Client: Die meisten modernen Betriebssysteme (Linux, macOS) enthalten den OpenSSH-Client standardmäßig. Windows 10/11 enthält ebenfalls einen integrierten OpenSSH-Client, obwohl ältere Versionen möglicherweise eine Drittanbieteranwendung wie PuTTY erfordern.
- Serveradresse (Host): Die IP-Adresse (z. B.
192.168.1.50) oder der vollqualifizierte Domainname (FQDN, z. B.server.example.com) des entfernten Rechners. - Benutzername: Ein gültiges Benutzerkonto auf dem entfernten Server (z. B.
root,ubuntu,jdoe). - Anmeldeinformationen: Entweder das Passwort für den angegebenen Benutzer oder eine passende private SSH-Schlüsseldatei.
Die grundlegende SSH-Befehlsyntax
Das Herstellen einer SSH-Verbindung basiert auf einer einfachen, konsistenten Syntaxstruktur. Der Befehl erfordert die Angabe von wem Sie sind und wohin Sie möchten.
Aufschlüsselung der grundlegenden Syntax
Die grundlegendste Struktur des SSH-Befehls ist:
ssh [optionen] benutzername@hostadresse
| Komponente | Beschreibung | Beispielwert |
|---|---|---|
ssh |
Der Befehl, der die Secure-Shell-Verbindung initiiert. | - |
[optionen] |
Optionale Flags zur Änderung der Verbindung (z. B. Port, Identitätsdatei). | -p 2222 |
benutzername |
Der Kontoname auf dem entfernten Server, mit dem Sie sich anmelden möchten. | sysadmin |
hostadresse |
Die IP-Adresse oder der Domainname des entfernten Servers. | 172.31.255.10 oder webserver.com |
Verbindung zum Standardport herstellen
Standardmäßig lauschen SSH-Server auf dem TCP-Port 22. Wenn der entfernte Server diesen Standardport verwendet, benötigen Sie nur den Benutzernamen und den Host.
Beispiel: Verbindung als Benutzer jdoe zum Server unter 192.168.1.100
ssh [email protected]
Wenn Sie sich zum ersten Mal mit dem Server verbinden, fordert Ihr SSH-Client Sie auf, den Host-Key des Servers zu überprüfen. Bestätigen Sie ihn nur, wenn der Fingerabdruck mit dem übereinstimmt, was Ihr Anbieter oder Administrator erwartet. Nachdem Sie ihn akzeptiert haben, speichert SSH den Schlüssel in ~/.ssh/known_hosts.
Wesentliche Verbindungsoptionen
Während die grundlegende Syntax für die meisten Standardverbindungen funktioniert, werden mehrere Optionen häufig verwendet, um die Verbindung anzupassen oder Fehler zu beheben.
Angeben eines benutzerdefinierten Ports (-p)
Aus Sicherheitsgründen ändern viele Serveradministratoren den Standard-SSH-Port (22) in einen nicht standardmäßigen Port (z. B. 2222, 50000). Sie müssen das Flag -p verwenden, um diesen benutzerdefinierten Port anzugeben.
Syntax:
ssh -p [portnummer] benutzername@hostadresse
Beispiel: Verbindung zu appserver.local auf Port 5555
ssh -p 5555 [email protected]
Die Option -p steht normalerweise vor benutzername@host. Das hält den Befehl lesbar und vermeidet Verwechslungen mit Remote-Befehlsargumenten.
Ausführliche Ausgabe (-v)
Wenn Sie Probleme beim Verbinden haben (z. B. Verbindungszeitüberschreitungen, Authentifizierungsfehler), ist der ausführliche Modus für die Fehlerbehebung unverzichtbar. Das Flag -v erhöht die Ausgabestufe und zeigt detaillierte Schritte des Verbindungsprozesses an, einschließlich Aushandlung, Schlüsselaustausch und Authentifizierungsversuche.
Syntax:
ssh -v benutzername@hostadresse
Für eine noch detailliertere Fehlerbehebung können Sie -vv oder -vvv (maximale Ausführlichkeit) verwenden.
Ausführen eines einzelnen Remote-Befehls
SSH wird normalerweise verwendet, um eine interaktive Shell-Sitzung zu öffnen. Sie können jedoch einen einzelnen Befehl auf dem entfernten Server ausführen, ohne eine dauerhafte Sitzung zu etablieren. Die Verbindung führt den Befehl aus, gibt die Ausgabe zurück und schließt dann sofort.
Syntax:
ssh benutzername@hostadresse "auszuführender Befehl"
Beispiel: Überprüfen des Speicherplatzes (df -h) auf dem entfernten Server:
ssh [email protected] "df -h"
Dies ist nützlich für schnelle Überprüfungen:
ssh [email protected] "systemctl status nginx --no-pager"
Authentifizierungsmethoden
Sobald die Verbindung hergestellt ist, erfordert der Server eine Authentifizierung, um Ihre Identität zu überprüfen. Die beiden primären Methoden sind die Passwortauthentifizierung und die schlüsselbasierte Authentifizierung.
1. Passwortauthentifizierung
Dies ist die einfachste Methode, bei der der Server Sie nach der Verbindung nach dem Passwort des Benutzers fragt. SSH verschlüsselt die Passwortübertragung.
Prozess:
- Führen Sie den
ssh-Befehl aus. - Server fordert zur Eingabe auf:
Passwort für [email protected]: - Geben Sie das Passwort ein (die Eingabe wird nicht sichtbar sein).
Die Passwortauthentifizierung ist bequem, aber öffentlich zugängliche Server sind oft Ziel von Brute-Force-Anmeldeversuchen. Für internetexponierte Systeme ist die schlüsselbasierte Anmeldung plus deaktivierte Passwortauthentifizierung normalerweise die sicherere Grundlage.
2. Schlüsselbasierte Authentifizierung
Die schlüsselbasierte Authentifizierung verwendet ein Paar kryptografischer Schlüssel: einen öffentlichen Schlüssel, der auf dem Server gespeichert ist, und einen entsprechenden privaten Schlüssel, der sicher auf Ihrem lokalen Rechner gespeichert ist. Diese Methode ist weitaus sicherer als Passwörter.
Angeben der Identitätsdatei (-i)
Wenn sich Ihre private Schlüsseldatei nicht am Standardspeicherort (~/.ssh/id_rsa oder ~/.ssh/id_ed25519) befindet, müssen Sie die Option -i verwenden, um ihren Speicherort anzugeben.
Syntax:
ssh -i /pfad/zur/privaten/schlüsseldatei benutzername@hostadresse
Beispiel: Verbindung mit einem bestimmten Schlüssel namens prod_server_key
ssh -i ~/.ssh/prod_server_key [email protected]
Einrichten der Schlüsselauthentifizierung (Kurzer Überblick)
Um die Schlüsselauthentifizierung zu verwenden, führen Sie normalerweise die folgenden Schritte aus:
- Generieren Sie das Schlüsselpaar auf Ihrem lokalen Rechner mit
ssh-keygen. - Kopieren Sie den öffentlichen Schlüssel in die Datei
~/.ssh/authorized_keysdes entfernten Servers, normalerweise mit dem Dienstprogrammssh-copy-id.
ssh-copy-id benutzername@hostadresse
Zusammenfassung der praktischen SSH-Befehle
| Ziel | Beispielbefehl | Beschreibung |
|---|---|---|
| Standardverbindung | ssh [email protected] |
Stellt eine Verbindung mit Standardport 22 her. |
| Benutzerdefinierter Port | ssh -p 443 [email protected] |
Stellt eine Verbindung zu Port 443 her. |
| Schlüsselauthentifizierung | ssh -i ~/.ssh/dev_key dev@testbed |
Stellt eine Verbindung mit einer bestimmten privaten Schlüsseldatei her. |
| Fehlerbehebung bei Verbindung | ssh -v [email protected] |
Führt die Verbindung im ausführlichen Modus zur Fehlerbehebung aus. |
| Remote-Befehl | ssh user@host "uptime" |
Führt den Befehl uptime aus und beendet sich. |
Schnelle Fehlerbehebungsprüfungen
Wenn der Befehl fehlschlägt, überprüfen Sie den Fehler, bevor Sie Servereinstellungen ändern:
Connection timed out: Der Host oder Port könnte durch eine Firewall, Sicherheitsgruppe oder ein Routing-Problem blockiert sein.Connection refused: Der Server ist erreichbar, aber es lauscht nichts auf diesem Port.Permission denied (publickey): Der Server hat Ihren Schlüssel, Benutzernamen oder Ihre Authentifizierungsmethode nicht akzeptiert.REMOTE HOST IDENTIFICATION HAS CHANGED: Der gespeicherte Host-Key stimmt nicht mehr überein. Dies kann nach einem Server-Neubau passieren, kann aber auch auf ein ernstes Sicherheitsproblem hinweisen. Überprüfen Sie den Fingerabdruck, bevor Sie den alten Schlüssel entfernen.
Bei Schlüsselproblemen liefert dieser Befehl normalerweise genügend Details:
ssh -vvv -i ~/.ssh/prod_server_key [email protected]
Praktische Erkenntnisse
Beginnen Sie mit ssh user@host. Fügen Sie -p hinzu, wenn der Server einen benutzerdefinierten Port verwendet, fügen Sie -i hinzu, wenn Sie einen bestimmten privaten Schlüssel benötigen, und verwenden Sie -v oder -vvv, wenn Authentifizierungs- oder Netzwerkfehler unklar sind. Bewegen Sie sich bei Servern, die dem Internet ausgesetzt sind, in Richtung schlüsselbasierter Authentifizierung und deaktivieren Sie Passwort-Anmeldungen, wenn Ihr Zugriffsprozess dies zulässt.