Windows 10 SSH Server einrichten
In diesem kurzen Artikel machen wir Windows 10 zu einem SSH Server. Seit der aktuellen Windows Version ist das Setup sehr einfach und erlaubt einen headless Betrieb von Windows 10 als Server. Die meisten deutschsprachigen Artikel dazu sind nicht zu gebrauchen, weil falsch oder unvollstänfig, deshalb alles im Detail.
Windows 10 SSH Server
Zuletzt habe ich bereits gezeigt wie man einen Windows 10 Streaming Server erstellt. Windows 10 kann man recht gut als Server Betriebssystem verwenden, mit aktivem SSH Server kann man diesen sogar ganz ohne Monitor betreiben. Damit das klappt muss man den SSH Daemon erst installieren, der SSH Server ist standardmäßig nicht installiert (aus Sicherheitsgründen).
SSH Server installieren
Unter den Einstellungen -> Apps findet man den unscheinbaren Punkt „optionale Features“.
Die Liste zeigt alle bereits installierten optionalen Features. Über einen Klick auf „Feature hinzufügen“ gelangt man zu einer Liste aller noch nicht installierter optionaler Features. Dort findet man auch den OpenSSH Server, den man mit einem Klick installiert:
Der OpenSSH Server ist ein so genannter Daemon. Das ist ein Programm, das unbemerkt im Hintergrund läuft und seine Arbeit verrichtet. Das Feature OpenSSH wird unter C:\Windows\System32\OpenSSH installiert. Das Verzeichnis zeigt eine ganze Menge Programme die wir im Zusammenhang mit OpenSSH verwenden können:
Nach der Installation muss man das System auf jeden Fall neu starten.
OpenSSH Server starten
Nach dem Neustart findet man den OpenSSH Server unter den verfügbaren Diensten. Die Übersicht findet man beispielsweise über die Suche nach Diensten:
Ein Doppelklick zeigt den Dialog über den man den Dienst startet. Ist er einmal gestartet steht die Option auf „Manuell“. Das ist für den automatischen Betrieb des Servers nicht zielführend, weshalb wir das auf „Automatisch“ ändern:
Mit SSH verbinden
Man kann sich bereits von einem beliebigen System im gleichen Netzwerk über den Benutzernamen des Serveraccounts und Bekanntgabe des Passworts mit dem Server verbinden. Das geht über die Kommandozeile (cmd) oder über die PowerShell mit folgendem Befehl:
ssh BENUTZERNAME@SERVERNAME
statt dem Servernamen kann man auch wie im Screenshot zu sehen dessen IP Adresse verwenden:
Das Login klappt erst nach einer erfolgreichen Passwortabfrage. Das ist mit der Zeit aber nervig, weshalb ich die Authorisierung über SSH Keyfiles bevorzuge. Dazu müssen wir am Client System, also beispielsweise am Laptop der sich mit dem Windows 10 OpenSSH Server verbinden will ein Paar aus privatem und öffentlichen Schlüssel erzeugen. Der OpenSSH Client ist bei Windows 10 standardmäßig installiert, die Keys werden automatisch mit:
ssh-keygen
erstellt. Im .ssh Ordner im Benutzerkonto findet man daraufhin 2 Dateien:
- id_rsa
das ist der private Schlüssel. Der darf niemals aus der Hand gegeben werden. - id_rsa.pub
das ist der öffentliche Schlüssel der geteilt werden darf.
Damit wir uns nun ohne Passwort anmelden können muss der Server den öffentlichen Schlüssel vom Rechner über den man sich anmelden will kennen. Am Server legt man deshalb im Benutzerkonto im .ssh Ordner (falls der noch nicht existiert einfach erstellen) die Datei authorized_keys an. In dieser Datei fügt man den Inhalt der id_rsa.pub Datei vom Laptop ein.
Damit das klappt muss die Datei exakt authorized_keys heißen ohne Dateiendung. Notepad macht gerne ein *.txt dahinter, die Dateiendung muss man entfernen. Sofern alles passt kann man sich sofort vom Laptop über SSH am Server anmelden.
OpenSSH Server konfigurieren
Mit der aktuellen Konfiguration kann man sich sowohl über den SSH Key als auch mit einem Passwort anmelden. Eine einfache Möglichkeit die Sicherheit des Servers dramatisch zu erhöhen ist die Deaktivierung des Logins mittels Passwort. Darauf hin können sich nur noch Benutzer mit ihren SSH Keys anmelden die in den jeweiligen authorized_keys Dateien der Benutzerkonten am Server konfiguriert sind.
Unter Windows befindet sich die sshd_config Konfigurationsdatei unter dem Verzeichnis %programdata%\ssh\sshd_config. Diese kann man mit einem Editor öffnen. Es werden die Anmeldungen für
- Passwort
- Public Key
unterstützt. Man muss die Konfigurationsdatei mit Administrator Rechten öffnen und die Zeile
PasswordAuthentication no
einkommentieren und das zuvor standard gesetzte yes auf no ändern. Die Datei noch speichern und den SSH Dienst neu starten.
Von nun an kann man sich über SSH nur noch mit einem gültigen SSH Key einloggen.
Fazit
In diesem ausführlichen Artikel habe ich im Detail beschrieben wie man unter Windows 10 den OpenSSH Server installiert und konfiguriert. Ich habe gezeigt wie man sich mittels Passwort auf dem Server mit einem dort existierenden Konto verbinden kann und dieses mittels SSH Keys absichert. Ich habe außerdem gezeigt wie man SSH so konfiguriert, damit man sich nur noch mittels SSH Keys einloggen kann und damit die Sicherheit des Servers massiv verbessert.
Danke für deinen tollen Beitrag.
Danke für die gute Anleitung.
Eine ergänzung für Benutzer die auch Administratorrechte haben:
Am Ende der sshd_config Datei steht eine Ausnahmeregel für Adminstratoren.
Entweder Kommentiert man diese Regel (zwei Zeilen mit „Match Group administrator“ beginnend ) aus, oder konfiguriert die authorized_users im dort angegebenen Pfad