So stellen Sie mithilfe des grundlegenden SSH-Befehls eine Verbindung zu einem Remote-Server her
Einführung in Secure Shell (SSH)
Secure Shell (SSH) ist das Rückgrat der sicheren Remote-Administration und bietet ein kryptografisches Netzwerkprotokoll zur sicheren Bereitstellung von Netzwerkdiensten über ein unsicheres Netzwerk. Es ist die Standardmethode, die von Systemadministratoren und Entwicklern verwendet wird, um remote auf Linux-, Unix- und macOS-Server zuzugreifen und diese zu verwalten. Im Gegensatz zu älteren, unsicheren Protokollen wie Telnet verschlüsselt SSH alle übertragenen Daten, einschließlich Benutzernamen, Passwörter und Befehlsausgaben, wodurch die Vertraulichkeit und Integrität gewährleistet wird.
Diese Anleitung konzentriert sich auf den grundlegendsten Aspekt des Protokolls: den Aufbau einer einfachen, direkten Verbindung mithilfe der grundlegenden ssh-Befehlssyntax. Unabhängig davon, ob Sie Systemwartung durchführen, Code bereitstellen oder Dateien übertragen, ist das Verständnis des grundlegenden Verbindungsmechanismus der wesentliche erste Schritt zur Nutzung der vollen Leistungsfähigkeit des Secure Shell-Protokolls.
Voraussetzungen für die Verbindung
Stellen Sie sicher, dass die folgenden Komponenten bereit sind, bevor Sie versuchen, eine Verbindung herzustellen:
- 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 Anwendung eines Drittanbieters wie PuTTY erfordern.
- Serveradresse (Host): Die IP-Adresse (z. B.
192.168.1.50) oder der voll qualifizierte Domänenname (FQDN, z. B.server.example.com) des Remote-Rechners. - Benutzername: Ein gültiger Benutzeraccount auf dem Remote-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-Befehlssyntax
Der Aufbau einer SSH-Verbindung basiert auf einer einfachen, konsistenten Syntaxstruktur. Der Befehl erfordert die Angabe, wer Sie sind und wohin Sie möchten.
Aufschlüsselung der Kernsyntax
Die grundlegendste Struktur des SSH-Befehls lautet:
ssh [Optionen] benutzername@host_adresse
| 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 Accountname auf dem Remote-Server, unter dem Sie sich anmelden möchten. | sysadmin |
host_adresse |
Die IP-Adresse oder der Domänenname des Remote-Servers. | 172.31.255.10 oder webserver.com |
Verbindung zum Standardport
Standardmäßig lauscht der SSH-Server auf TCP-Port 22. Wenn der Remote-Server diesen Standardport verwendet, müssen Sie außer dem Benutzernamen und dem Host keine weiteren Optionen angeben.
Beispiel: Verbindung als Benutzer jdoe zum Server unter 192.168.1.100
ssh [email protected]
Wenn dies das erste Mal ist, dass Sie eine Verbindung zum Server herstellen, werden Sie vom SSH-Client aufgefordert, den Host-Schlüssel des Servers zu überprüfen und zu bestätigen, ob Sie der Verbindung vertrauen möchten. Sie müssen yes eingeben, um fortzufahren. Dieser Schlüssel wird dann in Ihrer ~/.ssh/known_hosts-Datei gespeichert.
Wesentliche Verbindungsoptionen
Obwohl die grundlegende Syntax für die meisten Standardverbindungen funktioniert, werden mehrere Optionen häufig verwendet, um die Verbindung anzupassen oder Fehler zu beheben.
Angabe 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 [port_nummer] benutzername@host_adresse
Beispiel: Verbindung zu appserver.local auf Port 5555
ssh -p 5555 [email protected]
Tipp: Platzierung des Ports
Beachten Sie, dass die Option
-pvor dem Argumentbenutzername@hoststeht.
Ausführliche Ausgabe (-v)
Wenn Sie Verbindungsprobleme haben (z. B. Verbindungsabbrüche, Authentifizierungsfehler), ist der ausführliche Modus zur Fehlerbehebung von unschätzbarem Wert. Das Flag -v erhöht die Ausgabestufe und zeigt detaillierte Schritte des Verbindungsprozesses an, einschließlich Aushandlung, Schlüsselaustausch und Authentifizierungsversuchen.
Syntax:
ssh -v benutzername@host_adresse
Für eine noch detailliertere Fehlerbehebung können Sie -vv oder -vvv (maximale Ausführlichkeit) verwenden.
Ausführen eines einzelnen Remote-Befehls
SSH wird typischerweise verwendet, um eine interaktive Shell-Sitzung zu öffnen. Sie können jedoch einen einzelnen Befehl auf dem Remote-Server ausführen, ohne eine kontinuierliche Sitzung einzurichten. Die Verbindung führt den Befehl aus, gibt die Ausgabe zurück und wird dann sofort geschlossen.
Syntax:
ssh benutzername@host_adresse "befehl ausführen"
Beispiel: Überprüfen des Speicherplatzes (df -h) auf dem Remote-Server:
ssh [email protected] "df -h"
Authentifizierungsmethoden
Sobald die Verbindung initiiert wurde, verlangt der Server eine Authentifizierung, um Ihre Identität zu überprüfen. Die beiden Hauptmethoden sind die Passwortauthentifizierung und die schlüsselbasierte Authentifizierung.
1. Passwortauthentifizierung
Dies ist die einfachste Methode, bei der der Server Sie nach dem Passwort des Benutzers fragt, nachdem die Verbindung hergestellt wurde. SSH verschlüsselt die Passwortübertragung.
Vorgang:
- Führen Sie den
ssh-Befehl aus. - Server fragt:
Passwort für [email protected]: - Geben Sie das Passwort ein (die Eingabe wird nicht angezeigt).
Warnung: Sicherheitsbedenken
Obwohl bequem, ist die Passwortauthentifizierung anfällig für Brute-Force-Angriffe. Best Practices schreiben vor, die Passwortauthentifizierung auf öffentlich zugänglichen Servern vollständig zu deaktivieren und sich ausschließlich auf SSH-Schlüssel zu verlassen.
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@host_adresse
Beispiel: Verbindung unter Verwendung eines bestimmten Schlüssels 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 typischerweise 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 Remote-Servers, was normalerweise mit dem Dienstprogrammssh-copy-iddurchgeführt wird.
ssh-copy-id benutzername@host_adresse
Zusammenfassung der praktischen SSH-Befehle
| Ziel | Befehlsbeispiel | Beschreibung |
|---|---|---|
| Standardverbindung | ssh [email protected] |
Stellt die Verbindung über den Standardport 22 her. |
| Benutzerdefinierter Port | ssh -p 443 [email protected] |
Stellt die Verbindung zu Port 443 her. |
| Schlüsselauthentifizierung | ssh -i ~/.ssh/dev_key dev@testbed |
Stellt die Verbindung unter Verwendung einer bestimmten privaten Schlüsseldatei her. |
| Verbindung testen | 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 die Sitzung. |
Fazit
Der grundlegende ssh-Befehl ist das Tor zur Remote-Serververwaltung. Durch das Beherrschen der Kernsyntax (ssh benutzer@host) und das Verständnis der wesentlichen Optionen wie Portangabe (-p) und Identitätsdateien (-i) können Sie zuverlässig sichere Verbindungen zu jeder Remote-Serverumgebung herstellen. Der Übergang zur schlüsselbasierten Authentifizierung ist entscheidend für die Aufrechterhaltung eines hohen Sicherheitsniveaus und sollte, wann immer möglich, Passworteinlogs vorgezogen werden. Sobald die Verbindung hergestellt ist, haben Sie vollen Kommandozeilenzugriff, um Ihre Remote-Maschine zu verwalten.