Linux en Windows waren vroeger aartsvijanden, maar tegenwoordig kunnen ze veel beter met elkaar opschieten. Sterker nog, tegenwoordig kun je zelfs SSH native gebruiken in Windows: zowel als client als server. Wat doe je als je een Windows-beheerder bent maar ook Linux-machines moet beheren? Dan raak je gewend aan (Secure Shell) SSH-commando’s in Linux!
Dit is Deel IV in de blogpostserie Een Windows-man in een Linux-wereld. Als je meer wilt leren over populaire Linux-concepten, zorg er dan voor dat je Deel I, Deel II en Deel III bekijkt.
In deze post ga je alles leren over het inschakelen van SSH in Linux, en hoe je je Windows SSH-client instelt om verbinding te maken met externe Linux-servers.
Opmerking: Alle voorbeelden zullen gebruikmaken van OpenSUSE Linux.
Weg van de Desktopomgeving
In het eerste deel van deze serie werd aanbevolen om de KDE-desktopomgeving te gebruiken. Tijdens het instellen van OpenSUSE heb je waarschijnlijk een andere verleidelijke optie gezien; de servereditie van OpenSUSE.

Als u de servereditie van de meeste Linux-distributies (inclusief OpenSUSE) hebt geïnstalleerd, hebt u mogelijk gemerkt dat er geen desktop is. De servereditie van de meest populaire distributies (zoals OpenSUSE, evenals Ubuntu Server en CentOS) is als Windows Server Core: geen desktop om over te spreken.
Om te begrijpen waarom de desktop doorgaans wordt vermeden in de Linux-cultuur, moet u de CLI en SSH begrijpen.
SSH: De gouden standaard van extern beheer
SSH, zoals veel andere externe beheerprotocollen, is een op client-server gebaseerd systeem. Een client maakt op afstand verbinding met een server via het netwerk en stelt u in staat opdrachten uit te voeren (of zelfs bestanden over te dragen). SSH is de facto standaard als het gaat om het beheren van Linux op afstand.
Omdat SSH al lange tijd bestaat en diep is ingebed in het Linux-ecosysteem, domineren opdrachtregelbeheerhulpprogramma’s de Linux-serveromgeving. De meeste Linux-serverdistributies hebben geen grafische interface.
Het gebruik van SSH-opdrachten in Linux
Genoeg gepraat. Laten we eens kijken wat SSH kan doen door het eerst in te schakelen in OpenSUSE Linux. Om dit te doen, gebruikt u de YaST pakketbeheerder. Om SSH in te schakelen met YaST in OpenSUSE:
- Klik op het startmenu, typ terminal en kies Konsole als u de KDE Desktop Manager hebt geïnstalleerd bij het installeren van OpenSUSE.
- In de terminal opent u YaST door
sudo yast
uit te voeren. - Eenmaal in YaST, ga naar beneden naar systeem, ga vervolgens naar rechts naar services manager en druk op Enter om door te gaan.
- Ga naar beneden naar sshd, en druk op
alt+s
om de SSH-service te starten. - Druk op
alt+r
om de startmodus te wijzigen van handmatig naar bij opstarten. Hierdoor wordt ervoor gezorgd dat de SSH-server-service zelfs na een herstart wordt gestart. - Druk op
alt+o
om de wijzigingen te bevestigen en toe te passen.
U kunt deze stappen in actie zien hieronder.

SSH toestaan door de firewall
Bijna elke Linux-distributie wordt geleverd met een soort firewall om het te beschermen zoals Windows doet. U kunt hier meer lezen over de firewall van OpenSUSE hier. Om ervoor te zorgen dat u toegang hebt tot de SSH-service op afstand vanuit Windows, moet u deze toestaan door de firewall. Om dat te doen:
- Nog steeds in de terminal, start YaST opnieuw met
sudo yast
. - Ga naar beneden naar Security and Users en ga vervolgens naar rechts naar Firewall en druk op Enter om door te gaan.
- Navigeer naar Zones –> Public en ga naar rechts naar het Services—Ports paneel aan de rechterkant.
- Ga naar beneden om
ssh
te vinden in de services. - Selecteer
ssh
met de spatiebalk en druk opalt+d
om de selectie toe te voegen. - Druk op
alt+a
om de wijzigingen te accepteren.
Je kunt alle bovenstaande stappen hieronder visueel zien.

Net als Windows heeft Linux verschillende vertrouwensniveaus om firewallregels toe te passen. Deze niveaus worden zones genoemd. Windows heeft standaard openbare, werken privézones. Linux heeft er veel meer, maar standaard is de publieke zone geselecteerd.
Verbinding maken met Linux vanaf Windows
Gelukkig heeft Windows 10 tegenwoordig een ingebouwde SSH-client. Om verbinding te maken met een Linux-host, open een opdrachtprompt (cmd) of PowerShell-console en geef de gebruikersnaam op waarmee je wilt verbinden, en het IP-adres of de hostnaam.
Als alles goed gaat, vraagt de SSH-client je om een vingerafdruk te accepteren. Een vingerafdruk is een identificatiemiddel om ervoor te zorgen dat niemand het doel-IP-adres heeft gekaapt.
Als je Windows 7 gebruikt, kun je nog steeds SSH gebruiken voor je Linux-host. Je moet gewoon de Microsoft SSH-client hier downloaden. Deze SSH-client is dezelfde als die welke Windows 10 gebruikt.
Zodra je ‘yes’ typt en je wachtwoord invoert, ben je verbonden met je server! Je kunt nu de opdrachtregel gebruiken alsof je een terminal op de computer zelf opent.
Stel SSH (standaard poort 22) niet bloot aan het internet via je router. Bots crawlen voortdurend het internet voortdurend op zoek naar open SSH-poorten. Zodra een bot een open poort vindt, begint deze wachtwoorden te spammen om op brute wijze binnen te dringen.
Het inschakelen van muisondersteuning in SSH met Windows
Een van de grote nadelen van het gebruik van de native Windows 10 SSH-client (ten minste op het moment van schrijven) is het ontbreken van muisondersteuning. Dit betekent dat je geen muis kunt gebruiken in midnight commander zoals je hebt geleerd in een eerdere blogpost.
Gelukkig kun je vanaf versie acht van de OpenSSH Windows-client muisondersteuning krijgen! Laten we deze client installeren.
- Download de nieuwste release van OpenSSH-Win64 hier en pak het resulterende zipbestand uit. De tutorial gaat ervan uit dat je het uitpakt naar ~\Downloads\OpenSSH-Win64.
- Open een PowerShell-console en navigeer naar ~\Downloads\OpenSSH-Win64 met
cd ~\Downloads\OpenSSH-Win64
. - Controleer de SSH-clientversie door
.\\ssh -V
uit te voeren. Op het moment van schrijven van deze handleiding zou de versie 8.1.0.0-p1 moeten zijn. - Maak verbinding met je Linux-server door
.\ssh <gebruiker>@<ip>
te gebruiken. - Zodra je bent ingelogd, test je de muisondersteuning door
mc
uit te voeren om midnight commander te starten om ervoor te zorgen dat je een muis kunt gebruiken.
Je kunt al deze stappen hierboven visueel weergegeven zien.
Het overschrijven van de standaard SSH-client
Als je de nieuwe versie op een meer permanente basis wilt gebruiken, kan dat; maar je moet de standaard Windows 10 SSH-client overschrijven. Dit zorgt ervoor dat telkens wanneer je ssh op de commandoregel uitvoert, de nieuwere versie (met muisondersteuning) wordt gebruikt.
Assume dat je de client hebt uitgepakt naar de ~\Downloads\OpenSSH-Win64 map
- Verplaats de uitgepakte OpenSSH-Win64 map naar een permanente map naar keuze. Deze tutorial gebruikt C:\gebruikers\openbaar\OpenSSH-Win64.
- Ga naar Start en vervolgens Uitvoeren en typ sysdm.cpl of open Systeem vanuit het configuratiescherm.
- Onder het Geavanceerd tabblad, klik op Omgevingsvariabelen.
- Onder Systeemvariabelen, klik op Pad.
- Klik op Nieuw om een nieuw pad toe te voegen en geef het map-pad op naar de SSH-client (C:\gebruikers\openbaar\OpenSSH-Win64 in dit geval).
- Klik op Omhoog verplaatsen totdat het boven de map %SystemRoot%\system32 staat. Hierdoor wordt ervoor gezorgd dat wanneer je
ssh
op de commandoregel typt, Windows hier eerst zal zoeken. - Open een PowerShell-console en voer
ssh -V
uit. Je zou de versie moeten zien als 8.1.0.0-p.
Deze stappen worden hieronder samengevat.

Het prioriteren van een map boven %SystemRoot%\system32 kan een beveiligingsrisico inhouden. Als iemand toegang heeft tot je computer, kunnen ze besluiten een virus in de OpenSSH-Win64 map in te voegen en het te benoemen als een Windows-hulpprogramma zoals cd.exe.
U moet de map OpenSSH-Win64 alleen-lezen maken voor iedereen behalve beheerders.
- Klik met de rechtermuisknop op de map OpenSSH-Win64 en klik op Eigenschappen.
- Onder het tabblad Beveiliging, klik op de knop Geavanceerd.
- Klik op Erfenis uitschakelen om aangepaste mapmachtigingen toe te staan en om te voorkomen dat bovenliggende mappen machtigingen in de map OpenSSH-Win64 overschrijven.
- Kies Toepassen, zoek de groep Beheerders en geef ze volledige rechten.
- Klik op Toepassen, zoek de groep Iedereen en geef ze alleen-lezen machtigingen.
- Selecteer het selectievakje Alle kindobjectmachtigingen vervangen om deze instellingen toe te passen op alle bestanden in de map OpenSSH-Win64; klik op Toepassen.
- Test nu deze machtigingen door een nieuw bestand te maken in de map OpenSSH-Win64. Windows zou een beheerdersprompt moeten vereisen.
Je kunt al deze stappen hierboven visueel weergegeven zien.

Het beheren van Verbroken Sessies met Tmux
Ah, wat vervelend! Je bent halverwege bij het uitvoeren van een lang uitvoerend commando via SSH en je internet valt weg. Nu heb je geen idee in welke staat de Linux-server verkeert! Is het klaar met dat commando? Hoe krijg je het terug?
Verbroken sessies zijn een legitiem probleem met SSH en gelukkig is er een eenvoudige oplossing. Je hebt een terminal multiplexer (tmux) nodig.
Tmux staat zowel voor de afkorting van terminal multiplexer als voor de naam van het programma zelf.
Tmux is een sessiebeheerder voor SSH. Het “behoudt” een sessie als je wordt losgekoppeld en houdt deze actief op de achtergrond. Je kunt later opnieuw verbinding maken met die sessie of zelfs meerdere sessies maken en tussen hen wisselen.
Om verbroken sessies te beheren met tmux:
- In de Linux-terminal download en installeer je het tmux-hulpprogramma door de volgende opdracht uit te voeren:
sudo zypper install -y tmux
zoals hieronder weergegeven:
Je kunt ook de YaST gebruiken om het tmux-hulpprogramma te downloaden.

De meeste Linux-distributies hebben een verschillende command-line pakketbeheerder. OpenSUSE gebruikt zypper. Arch gebruikt pacman. Ubuntu gebruikt apt. Red Hat gebruikt dnf en yum. Gelukkig is de syntaxis voor deze pakketbeheerders redelijk vergelijkbaar.
2. Op je Windows-computer, open een PowerShell-console en maak een SSH-verbinding met je Linux-server. Deze handleiding gaat uit van een gebruikersnaam van homelab en een IP-adres van de Linux-server van 192.168.134.169.
3. Open tmux door tmux
uit te voeren zodra je verbonden bent. Je zou een groene balk onderaan moeten zien
4. Voer een willekeurig commando uit dat wat tekst oplevert. Het maakt niet uit wat het is. Deze handleiding gebruikt neofetch. Je kunt ook ls
uitvoeren.
5. Verbreek de sessie door PowerShell te sluiten. Deze actie simuleert een onderbreking.
6. Maak opnieuw verbinding met je Linux-server via SSH.
7. Maak nu opnieuw verbinding met de oude sessie door tmux a
uit te voeren. Je zou nog steeds de uitvoer van dat vorige ls
commando moeten zien. Hoera, geen gegevensverlies bij de onderbreking!
Je kunt alle bovenstaande stappen visueel weergegeven zien hieronder.

Als je de Midnight Commander utility probeert te draaien binnen tmux, merk je misschien dat je geen muisondersteuning hebt. Je kunt dat oplossen door in plaats daarvan `mc -x` uit te voeren.
Het inschakelen van tmux bij het inloggen
Standaard zal tmux niet beschikbaar zijn in alle SSH-sessies. Je kunt dat veranderen door tmux te dwingen om zich aan te sluiten bij je SSH-sessie telkens wanneer je inlogt.
Als je bent ingelogd op je Linux-server via SSH:
- Open de Midnight Commander utility met mc.
2. Markeer het `.bashrc`-bestand en druk op `bewerken`.
Het `.bashrc`-bestand is een shell (batch) script dat elke keer wordt uitgevoerd wanneer je inlogt via de command line.
3. Voeg de onderstaande shellscriptcode toe aan het einde van het tekstbestand.
4. Klik op `stoppen` en sla op wanneer daarom wordt gevraagd.
5. Test het automatisch aansluiten van tmux door de verbinding met je SSH-sessie te verbreken en opnieuw aan te sluiten. Je zou automatisch een groene balk onderaan moeten krijgen, wat aangeeft dat je bent verbonden met een tmux-sessie!
Dat is eigenlijk maar het topje van de ijsberg van wat tmux kan doen, het is een behoorlijk krachtig multitasking-programma. Als je een Linux-beheerder vraagt wat hun meest gebruikte commando is, is het waarschijnlijk tmux.
Afronden
Dat concludeert de laatste post in de blogserie Een Windowskerel in een Linuxwereld. Blijf afgestemd op de ATA-blog voor de volgende installatie!