von Windows auf Linux zugreifen: SSH-Terminal, Dateien, Web
Ich habe jahrelang Ubuntu als Betriebssystem (OS) für meinen Hauptrechner verwendet, in jüngster Vergangenheit aber dennoch meinem alten Windows-Rechner nochmal eine Chance gegeben. Die Gründe dafür sind hauptsächlich der Einsatz von Office: Outlook, Word, Excel und die Verwendung von Visual Studio. Ich war mit Ubuntu als Client-OS lange Zeit mehr als zufrieden, dank der Office-Online-Version und Visual Studio Code anstelle von Visual Studio und weil ich die Produkte nur selten eingesetzt habe. Dennoch wollte ich einen Rechner, mit dem ich wieder alles starten kann.
Windows als Client-OS, Linux für den Server
Nachdem mein Linux PC, eine selbst gebaute NAS, Ubuntu als OS verwendet, wollte ich die Daten dort belassen und diese einfach von dort verwenden. Mein Ziel: die beste Kombination aus beiden Welten: Windows als Betriebssystem zum Arbeiten und meine Linux-Installation, also deren Dienste, von Windows aus verwenden. Das wäre dann in etwa so, wie es auch der Rest der Welt macht: Ein Blick auf die Statistik zeigt, dass Windows nach wie vor als Desktop-Client-Betriebssystem die Nummer Eins ist, anders bei den Serverbetriebssystemen: Dort haben eindeutig Linux basierte Betriebssysteme die Nase vorn. Vieles was ein Linux-System als Dienst zur Verfügung stellt, kann über den Browser aufgerufen werden, der Server selbst muss aber auch administriert werden, meist über das Terminal:
Linux-Befehle Terminal-Zugriff
Für das Ausführen von Befehlen auf einem Linux-System wird bekanntlich eine Konsole oder ein Terminal verwendet. Für den Zugriff auf die Konsole über das Netzwerk wird meist das Protokoll SSH verwendet.
putty
Das wohl bekannteste Tool für die Remote-Verbindung auf ein Linux-System ist das kleine Tool "putty".
siehe: putty 0.82 - SSH Client für Windows.
Windows Subsystem for Linux (WSL)
Noch einfacher ist der Einsatz von WSL, dem "Windows Subsystem for Linux", siehe: Linux unter Windows: WSL.
WSL ermöglicht das Starten eines Linux-Terminals in Windows und somit die Verwendung des SSH-Befehles für die Remote-Verbindung auf einen Linux-Rechner:
user@DESKTOP-???:~$ ssh root@192.168.1.1
Wer an dieser Stelle für die Anmeldung einen SSH-Key erzeugt, muss für die Verbindung kein Passwort verwenden, siehe: Ubuntu automatische SSH Anmeldung
Datei- und Ordner- Zugriff
WinSCP
Was "putty" für das Terminal ist, ist WinSCP für die Dateiübertragung. WinSCP ermöglicht den Zugriff auf bestimmte Dateien oder Ordner über SSH, FTP, SFTP, SCP, ..
siehe auch: WinSCP 6.3 - SSH Dateien vom Windows Rechner übertragen.
Eine Alternative zu WinSCP ist FileZilla, siehe: FileZilla 3.68.1 - free FTP Client.
Wer direkt ein Linux-Filesystem als Netzlaufwerk verbinden will, kann dazu WinFsp verwenden:
WinFsp Linux Filesystem als Windows Netzlaufwerk verbinden
Mit dem Windows File System Proxy: WinFsp ist es möglich, ein Linux-Fileystem über SSH als Netzlaufwerk zu verbinden, siehe auch: github.com/billziss-gh/winfsp/releases und github.com/billziss-gh/sshfs-win/releases/tag/v3.5.20357
Um ein Netzlaufwerk zu verbinden, kann dann einfach der net use-Befehl oder der Windows Explorer-Dialog "Netzlaufwerk verbinden" verwendet werden:
net use w: \\sshfs.r\bernhard@192.168.1.5\.\var\web
alternativ: Netzlaufwerk verbinden ...
Um die Ordnerrechte auf dem Linux-PC besser steuern zu können, kann über einen eigenen Linux-Benutzer nachgedacht werden, dieser kann wie folgt auf dem Linux-Rechner angelegt werden:
user@server:/var/web$ sudo useradd win2linux
[sudo] Passwort für user:
user@server:/var/web$ sudo passwd win2linux
Wer nicht SSH als Protokoll für den Zugriff, sondern über das Windows-Protokoll SMB auf ein Netzlaufwerk eines Linux-Systems zugreifen will, benötigt dazu am Linux-System einen Samba-Server:
Samba - Server
Alternativ, kann am Linux-System auch eine Windows-Freigabe erstellt werden: Das Linux-System verhält sich dann gleich einem Windows-Fileserver und gibt Dateien über SMB (Server Message Block-Protokoll) frei, siehe auch: Windows Netzwerk mit Samba Ubuntu.
Schlussendlich verwende ich aber weder Samba, noch WinSCP, noch FileZilla oder WinFsp für den Zugriff auf meine Daten, sondern Nextcloud:
Nextcloud
Auf meiner NAS habe ich Nextcloud über einen Docker-Container bereitgestellt. Nextcloud bietet eine einfache und elegante Lösung um eigene Dateien von verschiedenen Endgeräten zu verwenden: Für Windows gibt es dazu einen eigenen Sync-Client, welcher alle benötigten Ordner auf die lokale Festplatte synchronisiert, ähnlich OneDrive oder Dropbox. Die Kommunikation läuft dabei über das HTTP-Protokoll (Hypertext Transfer Protocol), also dem Protokoll welches auch für den Zugriff auf eine Webseite verwendet wird.
Siehe auch: Docker Nextcloud SSL - letsencrypt https
Für den Zugriff auf meine Entwicklungsumgebung verwende ich zusätzlich VSCode:
Visual Studio Code (VS-Code) - Remote
Ich habe zudem auf meiner NAS einige Docker-Container, unter anderem eine Testversion dieser Seite. Für den Umstieg auf Windows benötige ich also eine Lösung, um den Container bei Bedarf anzupassen, also um am Filesystem der NAS entwickeln zu können. Eine Möglichkeit wäre der zuvor vorgestellte Windows File System Proxy, es geht aber noch einfacher: VS-Code kann über die "Remote-SSH extension" direkt über SSH auf den Linux-Rechner zugreifen und verhält sich dabei so, als würde der Linux-PC verwendet werden:
siehe: code.visualstudio.com/docs/remote/ssh-tutorial.
Ich war vorher schon ein großer Fan von VS-Code: die Remote-SSH extension ist aber definitiv ein weiteres Highlight und hat mich einmal mehr überzeugt.
Fazit
In den letzten Jahren wurde das Verwenden einer Linux-Distribution als Windows-Client-Ersatz immer attraktiver: Vieles spielt sich heute im Browser ab und immer mehr Programme oder Spiele können mittlerweile auch unter Linux betrieben werden, siehe auch: Linux als Ersatz für Windows? Einstieg: Umstieg? Dennoch gibt es nach wie vor Programme, die nicht auf einem Linux-System gestartet werden können, allen voran die Microsoft Office und bestimmte Games. Wer darauf verzichten kann, ist bei einer Linux-Distribution gut aufgehoben und spätestens wenn die PC-Hardware Windows 11 nicht mehr unterstützt, bieten zum Beispiel Ubuntu oder Linux Mint ein modernes OS, welche auf der bestehenden Hardware ohne weiteres betrieben werden können.
{{percentage}} % positiv