2443299

So nutzen Sie den nativen SSH-Client von Windows

01.12.2021 | 08:01 Uhr |

Jahrzehntelang hat Microsoft das Thema der SSH-Administration ignoriert. Inzwischen gibt es einen ausgereiften SSH-Client für Windows, der den bisherigen Klassiker Putty überflüssig macht. Hinzu kommt eine komplette SSH-Server-Komponente.

Seit Ende 2017 bietet Windows eine Portierung der SSH-Client- wie -Serverkomponente. Der Client war früh zufriedenstellend, die Serverkomponente zunächst mangelhaft. Diese Beta-Defizite sind aber Geschichte: Ende 2021 darf Open SSH unter Windows als komplett und ausgereift gelten. Technisch handelt sich um mehrere Kommandozeilentools, die unter „\Windows\ System32\OpenSSH“ eingerichtet werden, wobei ssh.exe die wesentliche Clientkomponente, sshd.exe die wesentliche Serverkomponente darstellt.

Eine Installation entfällt

Die Zeiten, wo der SSH-Client noch als optionale Funktion (unter „Systemsteuerung –› Programme und Features –› Windows-Features aktivieren“) nachzurüsten war, sind vorbei. Jedes durch Updates aktualisierte Windows 10 sollte heute unter „\Windows\System32\OpenSSH\“ die volle Ausstattung für Open SSH mitbringen.

Aus uns nicht bekannten Gründen fehlt aber manchmal der Eintrag in der Path-Variablen, wonach ein Aufruf „ssh“ oder „ssh.exe“ (also ohne komplette Pfadangabe) ins Leere führt. Am besten erweitern Sie dann den „Path“ in der Systemsteuerung, indem Sie dort nach „Variable“ suchen und dann den Link „Systemumgebungsvariable bearbeiten“ starten. Der weitere Weg führt nach „Umgebungsvariablen –› Systemvariablen –› Path“. Hier tragen Sie zusätzlich „%SYSTEMROOT%\System32\ OpenSSH\“ ein.

Die Clientkomponente

Zum Zugriff auf SSH-Server genügt der Client (ssh.exe). Dieser SSH-Client läuft in jeder Konsole – in der Eingabeaufforderung Cmd.exe, in der Powershell oder auch in alternativen Kommando-Shells. Die Syntax ist bis ins Detail identisch mit jener unter Linux und bedarf keinerlei Umgewöhnung. Die beiden folgenden Beispiele zeigen die Angabe eines abweichenden Ports (Standard ist „22“ und benötigt keine Angabe) sowie die direkte Ausführung eines bestimmten Befehls auf einem Server:

ssh -p 2222 root@192.178.1.30 
ssh root@192.168.0.5 "ls -lA --group-directories-first /" 

Der native SSH-Client darf für sich beanspruchen, die kleinste und ressourcenschonendste aller SSH-Lösungen unter Windows zu sein.

Die Serverkomponente

Die Einrichtung der Serverkomponente funktioniert nach früheren Einschränkungen in den Jahren 2018 und 2019 inzwischen ebenfalls butterweich und überrascht mit uneingeschränktem Funktionsumfang. Der temporäre Start des SSH-Servers kann auf dem Windows-System über die Powershell

Start-Service sshd

oder auch in der Cmd erfolgen:

sc start sshd

In jedem Fall muss dazu die genutzte Konsole mit Administratorrecht gestartet werden. Alternativ zur Kommandozeile gibt es natürlich auch die grafische Dienstekonsole Services.msc, welche die sshd-Komponente als „OpenSSH SSH Server“ anzeigt. Hier erfordert der temporäre Start des Dienstes nur den Klick auf „Starten“; für das Einrichten als dauerhaften, automatisch startenden Dienst genügt unter „Starttyp“ die Option „Automatisch“ und Klick auf „Übernehmen“.

Danach ist der Windows-Rechner genauso zu erreichen, wie Sie das von einem Linux-SSH-Server erwarten: Es ist nämlich längst nicht nur der Shell-Zugriff, mit dem Sie nach (Beispiel) 

ssh ha@192.168.0.12

auf dem Windows-System spazierengehen (wobei Sie freilich die Befehle der CMD-Shell benutzen müssen, also „dir“ statt „ls“, „type“ statt „cat“ und so fort). Daneben steht via SFTP (Datenprotokoll von SSH) auch das komplette Dateisystem für den Datenaustausch zur Verfügung. Ein Linux-Dateimanager wird also mit der Adresseingabe

sftp://192.168.0.12/

das Dateisystem des Windows-Rechners anbieten. Das erlaubt nicht nur das Kopieren von Daten, sondern auch die Nutzung von Medien.

Ist wiederum ein Windows-System der Zugriffsclient auf den Windows-SSH-Server, dann ist immerhin uneingeschränkter Datenaustausch mit dem bewährten Tool Filezilla  möglich. Filezilla beherrscht SFTP und erreicht den Windows-SSH-Server mit seiner IP und den Authentifizierungsdaten („Verbindungsart: Normal“). Der Windows-Dateimanager Explorer bleibt allerdings weiter außen vor. Das ist ein Desiderat, das dann auch eine Mediennutzung oder Dateibearbeitung via SFTP eröffnen würde. Das externe Tool Swish  können wir nicht empfehlen, da es zwar den SFTP-Zugriff scheinbar in den Windows-Explorer integriert, dort aber nicht mehr leistet als Filezilla – also schlichten Datentransfer.

Hallo Windows! Der Linux-Dateimanager nutzt (nach Anmeldung) das komplette Windows-Dateisystem, wenn dort der SSH-Server gestartet wurde.
Vergrößern Hallo Windows! Der Linux-Dateimanager nutzt (nach Anmeldung) das komplette Windows-Dateisystem, wenn dort der SSH-Server gestartet wurde.

Automatische Anmeldung mit Schlüssel

Die bequemere und zugleich sicherere Anmeldung ohne Kennworteingabe ist mit dem Windows-SSH-Client ebenfalls möglich. Dabei fällt geringfügig mehr Handarbeit an als bei Linux-Clients. Zunächst muss auf dem Windows-System ein Dienst aktiviert werden – der ssh-agent. Dies geschieht am einfachsten über die Dienstekonsole Services.msc, wo der Dienst als „OpenSSH Authentication Agent“ auftaucht. Starten Sie ihn mit „Starten“ manuell für die aktuelle Sitzung oder dauerhaft („Starttyp –› Automatisch“). Danach erstellen Sie für das aktuelle Benutzerkonto mit 

ssh-keygen

einen neuen Schlüssel (genau genommen zwei – einen privaten und einen öffentlichen, die als Dateien „id.rsa“ und „id.rsa.pub“ im Benutzerkonto unter „%userprofile%\.ssh“ angelegt werden). Mit 

ssh-add

teilen Sie das dem vorher gestarteten sshagent mit. Nun muss zum Schluss noch der SSH-Server von dieser Schlüsselidentität informiert werden. Dazu kopieren Sie im einfachsten Fall den öffentlichen Schlüssel (Endung „pub“) 

scp C:\Users\ha\.ssh\id_rsa.pub root@192.168.0.6:\root\.ssh\authorized_keys

auf den Server unter jenes Konto (hier „root“), wo Sie sich anzumelden pflegen. Wenn es mehrere Clients gibt (egal ob Linux oder Windows), die sich hier per SSH anmelden, ist diese Methode nicht geeignet, weil die Zieldatei „authorized_keys“ neu überschrieben wird. In diesem Fall öffnen Sie am Server die Datei „authorized_ keys“ in einem Editor und kopieren den Inhalt der Clientdatei „id_rsa.pub“ als weitere Zeile hinzu. Künftig gelingt die Anmeldung ohne Abfrage des Systemkennworts.

SSH-Alternativen

Für den Ad-hoc-Zugriff auf der Kommandozeile, für Fernkontrolle für Linux- wie Windows-Rechner ist der beschriebene SSH-Client/Server von Microsoft eine absolute Empfehlung. Die bisherigen Alternativen Putty/Kitty/Smartty werden viele Nutzer trotzdem weiterpflegen, weil sie über Jahre daran gewöhnt sind oder weil die grafische Auswahl der Server einen gewissen Komfort bietet.

Es gibt aber einen weiteren SSH-Zugriff in Windows, der in diesem Zusammenhang mindestens erwähnt werden muss, weil er zusätzliche Optionen eröffnet: Die Rede ist vom „Windows Subsystem für Linux“ (WSL), das die LinuxWelt schon mehrfach beschrieben hat. WSL ist eine optionale Komponente, die unter Windows erst aktviert werden muss („Systemsteuerung –› Programme und Features –› Windows-Features aktivieren –› Windows-Subsystem für Linux“). Nach dieser Vorbereitung suchen Sie im „Microsoft Store“ nach „WSL“ und finden dort Ubuntu, Open Suse, Kali, Debian, Cent-OS und andere.

Installierte WSL-Distributionen finden und starten Sie später wie jedes andere Programm im Windows-Startmenü. Dass jedes dieser Linux-Subsysteme einen SSH-Client mitbringt, versteht sich von selbst, der entscheidende Vorteil liegt aber woanders: Das WSL kann Tools wie Rsync oder Midnight Commander installieren, die praktisch für Gleichstand mit Linux-Systemen sorgen.

PC-WELT Marktplatz

2443299