- PowerShell maakt native SSH-verbindingen mogelijk in Windows, Linux en macOS voor het veilig beheren van externe systemen.
- OpenSSH is eenvoudig te installeren en configureren en maakt geïntegreerde wachtwoord- of openbare sleutelauthenticatie mogelijk.
- PowerShell-cmdlets ondersteunen externe SSH-sessies, uitvoering van opdrachten en bestandsoverdracht zonder dat u afhankelijk bent van externe software.
Tegenwoordig is systeembeheer op afstand een must voor elke systeembeheerder, ontwikkelaar of computerliefhebber die met verschillende servers of pc's werkt, ongeacht of ze Windows, Linux of zelfs macOS. De komst van PowerShell met ingebouwde ondersteuning voor SSH was een echte katalysator. over hoe je computers veilig en effectief kunt verbinden en beheren. Als je tot degenen behoort die nog steeds denken dat je externe software nodig hebt of dat het proces ingewikkeld is, lees dan verder: dit artikel neemt al je twijfels weg en dient als een complete gids voor het gebruik van SSH vanuit PowerShell, met informatie over installaties, opdrachten, geavanceerde stappen en praktische tips voor verschillende omgevingen.
Door verbinding te kunnen maken via SSH vanuit PowerShell kunt u niet alleen servers beheren zonder uw stoel te verlaten, maar ook uw eigen servers beheren., maar bespaart u ook de installatie van applicaties van derden, wat een native, veilige en platformonafhankelijke ervaring biedt. De integratie van SSH in PowerShell heeft automatiserings- en beheertaken aanzienlijk vereenvoudigd, zowel in infrastructuren als in de cloud. Windows zoals in gemengde omgevingen, waar systemen van verschillende fabrikanten naast elkaar bestaan.
Wat is SSH en waarom zou ik het gebruiken met PowerShell?
SSH (Secure Shell) is een protocol waarmee u op een gecodeerde en veilige manier verbinding kunt maken met andere computers via het netwerk. Vervangt oudere protocollen zoals Telnet, waardoor alle verzonden gegevens (referenties of opdrachten) beschermd zijn tegen mogelijke onderschepping. Het is al jaren de standaard voor veilige toegang op afstand, vooral op Linux-servers, maar het gebruik ervan in Windows is gegroeid dankzij de integratie van OpenSSH in het systeem zelf en in PowerShell.
Met PowerShell, SSH-opdrachten kunnen vanaf de console worden uitgevoerd Windows of scripts, bestanden beheren, taken automatiseren en verbinding maken met beide servers Windows zoals Linux of netwerkapparaten – allemaal vanuit één tool. Dit maakt het een zeer flexibele en krachtige oplossing.
Voordelen van het gebruik van SSH vanuit PowerShell
- multiplatform: Systemen beheren Windows, Linux en macOS zonder van applicatie te wisselen.
- Eenvoudige automatisering: Integreer SSH-opdrachten in uw PowerShell-scripts voor terugkerende taken.
- Geen extra software: Vergeet het installeren van externe clients zoals PuTTY, aangezien de functionaliteit standaard in Windows 10, 11 en Server 2019 of hoger.
- beveiliging: SSH versleutelt alle communicatie en ondersteunt wachtwoord- of sleutelauthenticatie.
Vereisten voor het gebruik van SSH in PowerShell
Voordat u begint, moet u ervoor zorgen dat u aan de volgende basisvereisten voldoet:
- PowerShell versie 5.1 of hoger (PowerShell 6 of 7 wordt aanbevolen voor SSH-compatibiliteit en geavanceerde functies).
- SSH-client geïnstalleerd. In Windows 10 sinds versie 1809 en Windows Server 2019, OpenSSH is voorgeïnstalleerd. Voor oudere versies kunt u het handmatig installeren via de sectie met optionele functies. Windows.
- SSH-server actiefDe computer waarmee u verbinding wilt maken, moet een actieve SSH-server hebben, of dit nu een Linux-server is, een andere Windows, een macOS of een compatibel netwerkapparaat.
- Passende vergunningenU moet over geldige inloggegevens beschikken op de externe computer (gebruikersnaam en wachtwoord of een SSH-sleutel) en bij voorkeur een beheerder zijn als u services installeert of configureert.
- Netwerktoegang en poort 22 open in de firewall om SSH-verbindingen toe te staan.
OpenSSH installeren en configureren in Windows
OpenSSH-integratie in Windows Het is een van de grootste ontwikkelingen in extern beheer met PowerShell. Hier zijn de belangrijkste stappen voor een correcte installatie en configuratie:
1. Controleer of OpenSSH aanwezig is
Open PowerShell als beheerder en voer het volgende uit:
Krijgen-WindowsMogelijkheid-Online | Waar-Objectnaam -zoals 'OpenSSH*'
Als je de status 'Geïnstalleerd' ziet voor OpenSSH.Client of OpenSSH.Server, is deze al beschikbaar. Als er 'Niet aanwezig' staat, moet je deze installeren.
2. Installeer de OpenSSH-client en/of -server
Toevoegen-WindowsMogelijkheid -Online -Naam OpenSSH.Client~~~~0.0.1.0 Toevoegen-WindowsMogelijkheid -Online -Naam OpenSSH.Server~~~~0.0.1.0
Met de eerste kunt u verbinding maken met andere computers, met de tweede kunnen anderen verbinding maken met uw pc.
3. Start en configureer de OpenSSH-service
Start-Service sshd Set-Service -Name sshd -StartupType 'Automatisch'
Hiermee wordt de service ingeschakeld en wordt deze automatisch gestart met Windows.
4. Firewallconfiguratie
Zorg ervoor dat uw firewall is Windows Staat SSH-verbindingen toe op poort 22. Wanneer u OpenSSH installeert, wordt de regel normaal gesproken automatisch aangemaakt, maar om dit te verifiëren, kunt u het volgende gebruiken:
Get-NetFirewallRule -Naam "OpenSSH-Server-In-TCP"
Als deze nog niet bestaat, kunt u deze eenvoudig toevoegen:
New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
SSH configureren op Linux, macOS en Windows voor externe PowerShell-sessies
SSH in PowerShell is niet alleen bedoeld voor verbinding met Linux-systemen. Vanaf PowerShell 6 kan het worden gebruikt om externe PowerShell-sessies (PSRemoting) uit te voeren met SSH als transport, waardoor echt platformonafhankelijke sessies mogelijk zijn.
Configuratie binnen Windows
- Installeer de nieuwste versie van PowerShellJe kunt het downloaden van GitHub.
- Bewerk het sshd_config-bestand (At
$Env:ProgramData\ssh):- Wachtwoordverificatie inschakelen:
Wachtwoordverificatie ja
- Voeg het subsysteem voor PowerShell toe:
Subsysteem powershell C:/progra~1/powershell/7/pwsh.exe -sshs
U kunt een symbolische koppeling maken om het pad naar het uitvoerbare bestand te vereenvoudigen:
Nieuw-Item -ItemType SymbolicLink -Pad 'C:\ProgramData\ssh\' -Naam 'pwsh.exe' -Waarde (Get-Command pwsh.exe).Bron
- Als u sleutelauthenticatie wilt gebruiken:
PubkeyAuthentication ja
- Wachtwoordverificatie inschakelen:
- Start de sshd-service opnieuw:
Herstart-Service sshd
- Zorg ervoor dat het OpenSSH-pad in de PATH-variabele staat.
Configuratie in Linux
- PowerShell installeren uit de officiële repository ().
- Installeer de SSH-server:
sudo apt install openssh-client sudo apt install openssh-server
- Bewerk het bestand /etc/ssh/sshd_config:
- Maak de lijn vast:
Wachtwoordverificatie ja
- Voeg het PowerShell-subsysteem toe:
Subsysteem PowerShell /usr/bin/pwsh -sshs -NoLogo
- Voor openbare sleutelauthenticatie:
PubkeyAuthentication ja
- Maak de lijn vast:
- Start de SSH-service opnieuw:
sudo systemctl herstart sshd.service
Instellingen op macOS
- Installeer de nieuwste versie van PowerShell.
- Activeer externe toegang (Extern inloggen) in systeemvoorkeuren, sectie 'Delen'.
- Bewerk /private/etc/ssh/sshd_config en voegt eraan toe:
- Wachtwoordverificatie ja
- Subsysteem PowerShell /usr/local/bin/pwsh -sshs -NoLogo
- PubkeyAuthentication ja
- Start de SSH-service opnieuw:
sudo launchctl stop com.openssh.sshd sudo launchctl start com.openssh.sshd
Externe verbinding en beheer met PowerShell en SSH
Er zijn twee manieren om SSH te gebruiken vanuit PowerShell:
- Voer het commando uit ssh rechtstreeks vanaf de console, net als op Linux- of macOS-systemen.
- Gebruiken PowerShell-specifieke cmdlets voor sessies op afstand: Nieuwe PSSession, Enter-PSSession, Roep-Command, die een SSH-verbinding als transport ondersteunen, ideaal voor het uitvoeren van opdrachten of scripts op andere computers.
Basisverbinding met behulp van de ssh-opdracht
ssh gebruiker@IP_of_host_naam
Er wordt u gevraagd om uw wachtwoord in te voeren. Als u openbare sleutelauthenticatie hebt ingesteld, wordt dit wachtwoord direct gebruikt.
U kunt alle gebruikelijke Linux-opdrachten gebruiken en ook bestanden bewerken, services opnieuw starten, enz. Om de sessie te beëindigen, gebruikt u afrit.
PowerShell-cmdlets met SSH
Vanaf PowerShell 6 kunt u externe sessies maken met behulp van SSH. Voorbeelden:
$session = New-PSSession -HostName RemoteServer -UserName uwGebruiker Enter-PSSession $session
Om één enkele opdracht op afstand uit te voeren:
Invoke-Command -Session $session -ScriptBlock { Get-Process }
Om de sessie vrij te geven:
Verwijder-PSSession $session
Praktische voorbeelden: van Windows naar Linux en vice versa
Stel je voor dat je een Windows 11 en je wilt toegang tot je Ubuntu-server. De stappen zijn dan:
- Open PowerShell in Windows.
- Escribe:
ssh uwGebruiker@Ubuntu_IP
- Voer het wachtwoord in wanneer daarom wordt gevraagd.
- U kunt nu opdrachten uitvoeren op uw externe server.
Het proces is identiek voor verbindingen tussen Linux en Windows, door alleen de gebruiker en de doelcomputer te wijzigen.
Bestandsoverdracht met PowerShell en SSH
Een andere zeer praktische voorziening is het gebruik van scp (beveiligde kopie), die ook beschikbaar is in Windows met OpenSSH en kunt u bestanden overbrengen tussen lokale en externe computers.
scp file.txt gebruiker@IP:/pad/bestemming/
Of andersom, download van de externe server:
scp gebruiker@IP:/pad/bestand.txt ./
Nuttige PowerShell-Linux-opdrachten en equivalenten
- ls / dir: Geeft de inhoud van een directory weer
- CD: Wijzig de directory op de externe server
- rm / Item verwijderen: Bestanden of mappen verwijderen
- mv / Verplaats-Item: Bestanden verplaatsen of hernoemen
- aanraken / Nieuw-Item: Bestanden maken
- gebruiksadd: Gebruikers toevoegen (op Linux)
- scp: Bestanden kopiëren tussen computers
SSH-sleutelbeheer voor geavanceerde authenticatie
Het is prima om in het begin een wachtwoord te gebruiken, maar de veiligste en meest praktische is openbare sleutel-gebaseerde authenticatie:
-
- Genereer een SSH-sleutel:
ssh-keygen
- Voeg de openbare sleutel toe aan de externe server: Kopieer de inhoud van id_rsa.pub (Linux) of het gegenereerde bestand in Windows naar ~/.ssh/authorized_keys op de doelserver.
- Gebruik optioneel ssh-agent om meerdere sleutels te beheren:
- Genereer een SSH-sleutel:
ssh-voeg privé_sleutel_pad toe
Op deze manier hoeft u de sleutel alleen de eerste keer in te voeren. Als de ssh-agent correct is geconfigureerd, hoeft u dat helemaal niet te doen.
Beperkingen en belangrijke overwegingen
- De sudo-opdracht Het is niet direct beschikbaar in externe PowerShell-SSH-sessies op Linux. Om geprivilegieerde opdrachten uit te voeren, moet je alternatieven of specifieke methoden vinden.
- PowerShell-profielen ($PROFILE) worden niet geladen automatisch tijdens SSH-sessies. Als u er een nodig hebt, moet u deze handmatig laden na het starten van de externe sessie.
- Beperkingen op meerdere platforms: Sommige geavanceerde functies (zoals endpoint management of JEA) worden alleen ondersteund door WinRM, hoewel we in de toekomst meer ondersteuning via SSH verwachten.
- Tweede sprong van de remote sessies: Vóór PowerShell 7.1 was het niet mogelijk om via SSH een tweede externe sessie te starten vanuit een reeds actieve sessie. Maar vanaf die versie is dat wel mogelijk, zij het met bepaalde beperkingen.
Gespecialiseerd gebruik: switches, netwerkapparaten en REST API's
PowerShell kan via SSH verbinding maken met netwerkapparaten zoals switches om opdrachten uit te voeren, hoewel dit afhankelijk is van de mogelijkheden van de firmware en de ondersteuning van het SSH-protocol. Voor meer geavanceerde taken bieden sommige hardwarefabrikanten REST API's die ook vanuit PowerShell kunnen worden beheerd.
In veel gevallen De directe methode met SSH is de meest universele optie, eenvoudig en compatibel voor basisbewerkingen op de externe computer.
Alternatieven voor OpenSSH? PuTTY en andere clients
Hoewel OpenSSH nu geïntegreerd is in Windows, hulpmiddelen zoals PuTTY zijn nog steeds geldige opties, vooral als u een grafische interface nodig hebt of opgeslagen verbindingen met verschillende configuraties en sleutels wilt beheren. Directe integratie met PowerShell en scripts maakt OpenSSH echter de voorkeursoptie voor de meeste gebruikers en automatiseringstaken.
Wat als ik met GitHub of vergelijkbare platforms werk?
Het instellen van SSH-sleutels in PowerShell is essentieel als u platforms zoals GitHubDe procedure bestaat uit het genereren van de sleutel, het toevoegen ervan aan de agent en het kopiëren van de openbare sleutel naar je GitHub-profielinstellingen. Zodra dit is gebeurd, kun je veilig met je repositories werken zonder telkens het wachtwoord in te voeren.
Het beheersen van SSH in PowerShell opent een wereld aan mogelijkheden voor het beheren en automatiseren van taken, of u nu servers beheert Windows, Linux of netwerkapparatenDankzij native OpenSSH-integratie en de kracht van PowerShell-cmdlets is het beheren van externe systemen een kwestie van minuten. Van de eerste installatie en configuratie tot bestandsoverdracht en het uitvoeren van complexe opdrachten: elke gebruiker kan zijn pc omtoveren tot een echt, veilig en veelzijdig cross-platform operations center.

Experts in software, ontwikkeling en applicaties voor industrieel en thuisgebruik. We benutten graag het volledige potentieel van alle software, programma's, apps, tools en besturingssystemen op de markt.
