A PowerShell 6-os verziójával a Microsoft bevezette a PowerShell Remoting over SSH-t, amely lehetővé teszi a valódi többplatformos PowerShell remotingot Linux, macOS és Windows között. A PowerShell SSH Remoting egy PowerShell host folyamatot hoz létre a célgépen SSH alrendszerként. Normális esetben a PowerShell remoting a WinRM-et használja a kapcsolattárgyaláshoz és az adattovábbításhoz, azonban a WinRM csak Windows alapú gépeken érhető el.
Vannak hátrányai is. Az SSH-alapú remoting jelenleg nem támogatja a távoli végpontok konfigurálását és a JEA-t (Just Enough Administration). Azt is fontos megérteni, hogy ez nem csak egy újabb PowerShell SSH kliens.
SSH Transport használata PowerShell Remotinggal
A PowerShell remoting SSH-val történő használatához ugyanazokat a cmdleteket használhatjuk, amelyeket a WinRM PowerShell remotingból ismerünk.
- New-PSSession
- Enter-PSSession
- Invoke-Command
Ezeknek a cmdleteknek 3 új paramétere van, ha a PowerShell SSH remotingot használja.
- -HostName (A -Computernév helyett, helyett az SSH-célt határozza meg)
- -UserName (A -Credentials helyett a -UserName paramétert használja)
- -KeyFilePath (Ha SSH kulcshitelesítést használ, akkor a -KeyFilePath paraméterrel mutathat a kulcsfájlra)
New-PSSession -HostName tomsssh.server.com -UserName thomas
PowerShell SSH Remoting beállítása
A PowerShell SSH-val való munkához, a következő lépéseket kell elvégeznie minden rendszeren és gépen.
- Az OpenSSH szerver és kliens telepítése
- A Windows OpenSSH for Windows közvetlenül elérhető a Windows 10 (1809) és a Windows Server 2019 rendszerben, mint opcionális funkció.
- Linuxon a platformtól függően telepíti az OpenSSH-t
- Telepítse a PowerShell 6-ot minden rendszerre
- Konfigurálja az SSH alrendszert, hogy a távoli gépen PowerShell folyamatot fogadjon
- Konfigurálja a jelszó- vagy kulcsalapú hitelesítést
Stepről lépésre az SSH távvezérlés beállítása Windowson
1. lépés: Először is telepítenie kell a PowerShell 6-ot a Windowson. A PowerShell 6 egyszerű telepítéséhez követheti a blogbejegyzésemet.
Step 2: Telepítse az OpenSSH klienst és az Open SSH szervert. A kliens és a kiszolgáló telepítéséhez és az OpenSSH kiszolgáló kezdeti konfigurálásához a következő parancsot használhatja.
# 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
Step 2.1: Mivel az OpenSSH for Windows-ban jelenleg hiba van, az elérési útvonal nem fogad el szóközöket. Szimlinket kell létrehoznia egy szóközök nélküli könyvtárba. Futtassa a következő parancsot a célrendszeren.
mklink /D c:\pwsh "C:\Program Files\PowerShell"
3. lépés: Konfigurálja és szerkessze a célgépen a $env:ProgramData\ssh címen található sshd_config fájlt.
Ellenőrizze, hogy a jelszavas hitelesítés engedélyezve van-e
PasswordAuthentication yes
Adja hozzá a PowerShell alrendszert
Subsystem powershell c:\pwsh\pwsh.exe -sshs -NoLogo -NoProfile
Optional enable key authentication
PubkeyAuthentication yes
Ha érdekli a kulcsalapú hitelesítés beállítása OpenSSH-val Windows Server-en, nézze meg az ITOpstalk blogbejegyzését.com Orin Thomas (Microsoft Cloud Advocate).
4. lépés: Az sshd szolgáltatás újraindítása
Restart-Service sshd
Step by step SSH remoting beállítása Linuxon (Ubuntu 18.04)
1. lépés: Először is telepítenie kell a PowerShell 6-ot Linuxon. A PowerShell 6 egyszerű telepítéséhez követheti a blogbejegyzésemet.
Step 2: Telepítse az OpenSSH klienst és nyissa meg az SSH szervert. A kliens és a szerver telepítéséhez és az OpenSSH szerver kezdeti konfigurálásához a következő parancsokat használhatja.
sudo apt install openssh-clientsudo apt install openssh-server
3. lépés: Az sshd_config fájl konfigurálása és szerkesztése a célgépen az /etc/ssh helyen.
Ellenőrizze, hogy a jelszóhitelesítés engedélyezve van-e
PasswordAuthentication yes
Adja hozzá a PowerShell alrendszert
Subsystem powershell /usr/bin/pwsh -sshs -NoLogo -NoProfile
Opticionálisan engedélyezze a kulcshitelesítést
PubkeyAuthentication yes
4. lépés: Az sshd szolgáltatás újraindítása
sudo service sshd restart
SSH remoting a PowerShell 6-tal
Most már használhatja a PowerShell SSH remotingot, hogy akár különböző operációs rendszerekről, például Windowsról Linuxra vagy Linuxról Windowsra csatlakozzon.
Mint már említettük, használhatja a már megszokott parancsokat, mint például a New-PSSession, Enter-PSSession vagy Invoke-Command.
A kliensként használhatja az Azure Cloud Shell-t is, amelyen a PowerShell 6 fut
Természetesen a PowerShell SSH remotingot is használhatja Linuxról Linuxra és Windowsról Windowsra való csatlakozáshoz. A PowerShell SSH remotingról további információkat talál a Microsoft Docs oldalain. Ha bármilyen kérdése van, kérjük, ossza meg velem a hozzászólásokban.
Címkék: Microsoft, PowerShell, PowerShell 6, PowerShell Core, PowerShell over SSH, Powershell Remoting, setup, Setup SSH PowerShell, SSH, SSH PowerShell, SSH Transport Utoljára módosítva: Microsoft, PowerShell, PowerShell 6, PowerShell Core, PowerShell over SSH, Powershell Remoting: április 4, 2019