Jahrelang war PuTTY der Quasi-Standard für SSH-Clients unter Windows. Seine Einfachheit und Open-Source-Natur machten es zu einer beliebten Wahl für Administratoren und Entwickler, die sich mit Remote-Servern verbinden mussten. Doch Windows hat sich weiterentwickelt, und mit ihm seine nativen Fähigkeiten. Wussten Sie, dass Windows inzwischen einen eigenen, leistungsstarken SSH-Client direkt in das Betriebssystem integriert hat? Dieser Artikel zeigt Ihnen, wie Sie den nativen Windows SSH-Client optimal nutzen und warum es sich lohnen könnte, PuTTY hinter sich zu lassen.
Warum den nativen SSH-Client von Windows nutzen?
Bevor wir uns in die Details stürzen, wollen wir klären, warum Sie überhaupt in Erwägung ziehen sollten, von PuTTY auf den nativen Windows SSH-Client umzusteigen:
- Integration: Der native Client ist nahtlos in Windows integriert. Das bedeutet keine zusätzlichen Installationen oder Updates. Er ist einfach da.
- Sicherheit: Er profitiert von den Sicherheitsupdates und -funktionen des Windows-Betriebssystems. Das kann ein Vorteil gegenüber Drittanbieter-Software sein.
- Komfort: Die Verwendung von PowerShell oder der Windows-Eingabeaufforderung zur Steuerung von SSH-Verbindungen kann die Automatisierung und Skripting erleichtern.
- Leistung: In einigen Fällen kann der native Client eine bessere Leistung bieten, da er direkt mit dem Betriebssystem zusammenarbeitet.
Grundlegende Verwendung des nativen SSH-Clients
Der SSH-Client ist über die PowerShell oder die Windows-Eingabeaufforderung zugänglich. Die grundlegende Syntax lautet:
ssh [Benutzername@]Hostname
Zum Beispiel, um sich als Benutzer „john.doe” mit dem Server „example.com” zu verbinden, verwenden Sie:
ssh [email protected]
Sie werden dann nach Ihrem Passwort gefragt. Nach erfolgreicher Authentifizierung erhalten Sie eine SSH-Shell auf dem Remote-Server.
Authentifizierung mit SSH-Schlüsseln
Die Authentifizierung mit Passwörtern ist zwar einfach, aber auch unsicher. Die Verwendung von SSH-Schlüsseln bietet eine deutlich sicherere und komfortablere Alternative. So erstellen und verwenden Sie SSH-Schlüssel unter Windows:
Schlüsselpaar erstellen:
- Öffnen Sie die PowerShell oder die Windows-Eingabeaufforderung.
- Geben Sie den folgenden Befehl ein:
- Sie werden aufgefordert, einen Speicherort für den Schlüssel auszuwählen. Der Standardwert (normalerweise
C:Users[Ihr Benutzername].sshid_rsa
) ist in der Regel in Ordnung. Drücken Sie einfach die Eingabetaste. - Sie werden dann aufgefordert, eine Passphrase einzugeben. Dies ist ein Passwort, das den privaten Schlüssel zusätzlich schützt. Sie können es leer lassen (indem Sie zweimal die Eingabetaste drücken), aber das wird nicht empfohlen, da es die Sicherheit verringert.
ssh-keygen
Nach der Ausführung dieses Befehls haben Sie zwei Dateien im Verzeichnis .ssh
:
id_rsa
: Dies ist Ihr privater Schlüssel. Bewahren Sie ihn sicher auf und geben Sie ihn niemals an Dritte weiter.id_rsa.pub
: Dies ist Ihr öffentlicher Schlüssel. Diesen Schlüssel müssen Sie auf den Remote-Server kopieren.
Öffentlichen Schlüssel auf den Server kopieren:
Es gibt verschiedene Möglichkeiten, den öffentlichen Schlüssel auf den Server zu kopieren. Eine einfache Methode ist die Verwendung des Befehls ssh-copy-id
:
ssh-copy-id [email protected]
Sie werden nach Ihrem Passwort gefragt. Nach erfolgreicher Authentifizierung wird Ihr öffentlicher Schlüssel zur Datei ~/.ssh/authorized_keys
auf dem Remote-Server hinzugefügt.
Alternativ können Sie den Inhalt der Datei id_rsa.pub
manuell kopieren und in die Datei ~/.ssh/authorized_keys
auf dem Server einfügen. Stellen Sie sicher, dass die Datei ~/.ssh/authorized_keys
existiert und die richtigen Berechtigungen hat (normalerweise 600). Sie können die Datei erstellen, falls sie noch nicht vorhanden ist, indem Sie sich mit Ihrem Passwort anmelden und dann:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
Sobald der öffentliche Schlüssel auf dem Server installiert ist, können Sie sich ohne Passwort anmelden. Versuchen Sie es:
ssh [email protected]
Konfigurationsdatei für komplexere Szenarien
Für komplexere Szenarien, in denen Sie mehrere Server verwalten oder spezielle Konfigurationen benötigen, ist die Konfigurationsdatei ~/.ssh/config
äußerst nützlich. Sie können diese Datei erstellen, falls sie nicht existiert.
In dieser Datei können Sie Hosts definieren und verschiedene Optionen für jede Verbindung festlegen. Zum Beispiel:
Host my-server
Hostname example.com
User john.doe
Port 2222
IdentityFile ~/.ssh/my_custom_key
In diesem Beispiel definieren wir einen Host namens „my-server”. Wenn Sie sich nun mit dem Befehl ssh my-server
verbinden, verwendet der SSH-Client automatisch die in der Konfigurationsdatei angegebenen Optionen, wie z. B. den Benutzernamen, den Port und den zu verwendenden privaten Schlüssel.
Nützliche SSH-Befehle und Optionen
Hier sind einige nützliche SSH-Befehle und Optionen, die Sie kennen sollten:
ssh -p [Port] [Benutzername@]Hostname
: Verbindet sich mit einem Server über einen bestimmten Port.ssh -i [Pfad zum privaten Schlüssel] [Benutzername@]Hostname
: Verwendet einen bestimmten privaten Schlüssel für die Authentifizierung.ssh -X [Benutzername@]Hostname
: Aktiviert X11-Forwarding, sodass Sie grafische Anwendungen vom Remote-Server auf Ihrem lokalen Computer ausführen können.ssh -L [lokaler Port]:[Hostname]:[Remote-Port] [Benutzername@]Hostname
: Erstellt einen lokalen Port-Tunnel.ssh -R [Remote-Port]:[Hostname]:[lokaler Port] [Benutzername@]Hostname
: Erstellt einen Remote-Port-Tunnel.scp [Quelle] [Ziel]
: Kopiert Dateien sicher über SSH.
SSH-Tunneling für sichere Verbindungen
SSH-Tunneling ist eine leistungsstarke Technik, um Netzwerkverkehr über eine verschlüsselte SSH-Verbindung zu leiten. Dies ist besonders nützlich, um unsichere Protokolle wie HTTP oder VNC zu schützen oder um Firewalls zu umgehen.
Wie bereits erwähnt, können Sie lokale und Remote-Port-Tunnel mit den Optionen -L
und -R
erstellen. Ein typischer Anwendungsfall für einen lokalen Port-Tunnel ist der Zugriff auf eine Webseite, die nur auf dem Remote-Server zugänglich ist:
ssh -L 8080:localhost:80 [email protected]
Dieser Befehl erstellt einen Tunnel, der den lokalen Port 8080 mit dem Port 80 auf dem Remote-Server (in diesem Fall localhost aus Sicht des Servers) verbindet. Sie können dann in Ihrem lokalen Webbrowser http://localhost:8080
aufrufen, um auf die Webseite zuzugreifen.
Fazit: Wechseln Sie zum nativen SSH-Client von Windows
Der native SSH-Client von Windows ist eine leistungsstarke und komfortable Alternative zu PuTTY. Er bietet eine nahtlose Integration, verbesserte Sicherheit und die Möglichkeit, SSH-Verbindungen mithilfe von PowerShell zu automatisieren und zu skripten. Obwohl PuTTY weiterhin eine valide Option ist, bietet der native Client eine moderne und integrierte Lösung für Windows-Benutzer. Probieren Sie es aus und entdecken Sie die Vorteile!