Med PowerShell version 6 introducerade Microsoft PowerShell Remoting over SSH, vilket gör det möjligt att använda PowerShell Remoting på flera plattformar mellan Linux, macOS och Windows. PowerShell SSH Remoting skapar en PowerShell värdprocess på målmaskinen som ett SSH-subsystem. Normalt använder PowerShell remoting WinRM för anslutningsförhandling och datatransport, men WinRM är endast tillgängligt på Windows-baserade maskiner.
Det finns också några nackdelar med det. SSH-baserad fjärrstyrning har för närvarande inte stöd för konfiguration av fjärrslutpunkter och JEA (Just Enough Administration). Det är också viktigt att förstå att detta inte bara är ännu en PowerShell SSH-klient.
Använd SSH Transport med PowerShell Remoting
För att använda PowerShell remoting med SSH kan du använda samma cmdlets som du känner till från PowerShell remoting med WinRM.
- New-PSSession
- Enter-PSSession
- Invoke-Command
Det finns 3 nya parametrar för dessa cmdlets, om du använder PowerShell SSH remoting.
- -HostName (Istället för -Computername, definierar du SSH-målet)
- -UserName (Istället för -Credentials använder du parametern -UserName)
- -KeyFilePath (Om du använder SSH-nyckelautentisering kan du använda parametern -KeyFilePath-parametern för att peka på nyckelfilen)
New-PSSession -HostName tomsssh.server.com -UserName thomas
Setup PowerShell SSH Remoting
För att arbeta med PowerShell SSH, måste du utföra följande steg på alla system och maskiner.
- Installera OpenSSH Server och Client
- OpenSSH för Windows är tillgängligt direkt i Windows 10 (1809) och Windows Server 2019 som en valfri funktion.
- På Linux installerar du OpenSSH beroende på din plattform
- Installera PowerShell 6 på alla system
- Konfigurera SSH-subsystemet för att vara värd för en PowerShell-process på fjärrmaskinen
- Konfigurera lösenords- eller nyckelbaserad autentisering
Steg-för-steg-installation av SSH-fjärrstyrning på Windows
Steg 1: Först måste du installera PowerShell 6 på Windows. Du kan följa mitt blogginlägg för att enkelt installera PowerShell 6.
Steg 2: Installera OpenSSH Client och Open SSH Server. För att installera klient och server och initialt konfigurera OpenSSH-servern kan du använda följande kommando.
# Install the OpenSSH Client and Server Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 # Initial Configuration of SSH Server Start-Service sshd Set-Service -Name sshd -StartupType 'Automatic' # Confirm the Firewall rule is configured. It should be created automatically by setup. Get-NetFirewallRule -Name *ssh* # There should be a firewall rule named "OpenSSH-Server-In-TCP", which should be enabled
Steg 2.1: Eftersom det för närvarande finns ett fel i OpenSSH för Windows accepterar sökvägen inte mellanslag. Du måste skapa en symbolisk länk till en katalog utan mellanslag. Kör följande kommando på målsystemet.
mklink /D c:\pwsh "C:\Program Files\PowerShell"
Steg 3: Konfigurera och redigera filen sshd_config som finns i $env:ProgramData\ssh på målmaskinen.
Kontrollera att lösenordsautentisering är aktiverad
PasswordAuthentication yes
Lägg till undersystemet för PowerShell
Subsystem powershell c:\pwsh\pwsh.exe -sshs -NoLogo -NoProfile
Optionellt aktivera nyckelautentisering
PubkeyAuthentication yes
Om du är intresserad av att konfigurera nyckelbaserad autentisering med OpenSSH på Windows Server kan du kolla in blogginlägget på ITOpstalk.com av Orin Thomas (Microsoft Cloud Advocate).
Steg 4: Starta om sshd-tjänsten
Restart-Service sshd
Steg för steg Konfigurera SSH-remoting på Linux (Ubuntu 18.04)
Steg 1: Först måste du installera PowerShell 6 på Linux. Du kan följa mitt blogginlägg för att enkelt installera PowerShell 6.
Steg 2: Installera OpenSSH Client och Open SSH Server. För att installera klient och server och initialt konfigurera OpenSSH-servern kan du använda följande kommandon.
sudo apt install openssh-clientsudo apt install openssh-server
Steg 3: Konfigurera och redigera filen sshd_config på platsen /etc/ssh på målmaskinen.
Kontrollera att lösenordsautentisering är aktiverad
PasswordAuthentication yes
Lägg till undersystemet för PowerShell
Subsystem powershell /usr/bin/pwsh -sshs -NoLogo -NoProfile
Optionellt aktivera nyckelautentisering
PubkeyAuthentication yes
Steg 4: Starta om tjänsten sshd
sudo service sshd restart
SSH Remoting with PowerShell 6
Nu kan du börja använda PowerShell SSH remoting för att ansluta även från olika operativsystem, t.ex. Windows till Linux eller Linux till Windows.
Som tidigare nämnts kan du använda samma kommandon som du känner till som New-PSSession, Enter-PSSession eller Invoke-Command.
Som klient kan du också använda Azure Cloud Shell, som kör PowerShell 6
Självklart kan du också använda PowerShell SSH Remoting för att ansluta från Linux till Linux och Windows till Windows. Du hittar mer information om PowerShell SSH remoting på Microsoft Docs-sidorna. Om du har några frågor får du gärna höra av dig i kommentarerna.
Taggar: Microsoft, PowerShell, PowerShell 6, PowerShell Core, PowerShell over SSH, Powershell Remoting, setup, Setup SSH PowerShell, SSH, SSH PowerShell, SSH Transport Senaste ändring: Sist ändrad: April 4, 2019