S PowerShellem verze 6 Microsoft představil PowerShell Remoting přes SSH, který umožňuje skutečné multiplatformní vzdálené ovládání PowerShellu mezi Linuxem, macOS a Windows. PowerShell SSH Remoting vytvoří na cílovém počítači hostitelský proces PowerShell jako subsystém SSH. Za normálních okolností používá vzdálené ovládání prostředí PowerShell k vyjednávání připojení a přenosu dat protokol WinRM, který je však k dispozici pouze na strojích se systémem Windows.
Má také některé nevýhody. Vzdálené ovládání založené na SSH v současné době nepodporuje konfiguraci vzdáleného koncového bodu a JEA (Just Enough Administration). Je také důležité si uvědomit, že se nejedná o dalšího klienta PowerShell SSH.
Použití transportu SSH s PowerShell Remoting
Pro použití PowerShell remoting s SSH můžete použít stejné rutiny, které znáte z PowerShell remoting s WinRM.
- New-PSSession
- Enter-PSSession
- Invoke-Command
Pokud používáte PowerShell SSH remoting, jsou u těchto rutin 3 nové parametry.
- -HostName (Místo parametru -Computername, definujete cíl SSH)
- -UserName (Místo parametru -Credentials použijete parametr -UserName)
- -KeyFilePath (Pokud používáte ověřování pomocí klíčů SSH, můžete použít parametr -KeyFilePath parametr, který ukazuje na soubor s klíčem)
New-PSSession -HostName tomsssh.server.com -UserName thomas
Nastavení PowerShell SSH Remoting
Pro práci s PowerShell SSH, je třeba provést následující kroky na všech systémech a počítačích.
- Instalace serveru a klienta OpenSSH
- OpenSSH pro Windows je k dispozici přímo v systému Windows 10 (1809) a Windows Server 2019 jako volitelná funkce.
- V systému Linux nainstalujete OpenSSH v závislosti na platformě
- Nainstalujte PowerShell 6 na všechny systémy
- Nakonfigurujte subsystém SSH tak, aby hostil proces PowerShell na vzdáleném počítači
- Nakonfigurujte ověřování pomocí hesla nebo klíče
Krok za krokem nastavte vzdálené ovládání SSH v systému Windows
Krok 1. Nastavte vzdálené ovládání SSH na vzdáleném počítači: Nejprve je třeba nainstalovat prostředí PowerShell 6 do systému Windows. Pro snadnou instalaci PowerShellu 6 můžete postupovat podle mého příspěvku na blogu.
Krok 2: Nainstalujte OpenSSH Client a Open SSH Server. Pro instalaci klienta a serveru a počáteční konfiguraci serveru OpenSSH můžete použít následující příkaz.
# 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
Krok 2.1. Instalace klienta a serveru OpenSSH: Vzhledem k tomu, že v OpenSSH pro Windows je v současné době chyba, cesta nepřipouští mezery. Je třeba vytvořit symlink na adresář bez mezer. V cílovém systému spusťte následující příkaz:
mklink /D c:\pwsh "C:\Program Files\PowerShell"
Krok 3: Nakonfigurujte a upravte soubor sshd_config umístěný na adrese $env:ProgramData\ssh v cílovém počítači.
Zkontrolujte, zda je povoleno ověřování heslem
PasswordAuthentication yes
Přidejte subsystém pro PowerShell
Subsystem powershell c:\pwsh\pwsh.exe -sshs -NoLogo -NoProfile
Případně povolte ověřování klíčem
PubkeyAuthentication yes
Pokud vás zajímá nastavení ověřování klíčem pomocí OpenSSH na serveru Windows, přečtěte si příspěvek na blogu ITOpstalk.com od Orina Thomase (Microsoft Cloud Advocate).
Krok 4: Restartování služby sshd
Restart-Service sshd
Krok za krokem Nastavení vzdáleného ověřování SSH v systému Linux (Ubuntu 18. září).04)
Krok 1: Nejprve je třeba nainstalovat PowerShell 6 na Linux. Pro snadnou instalaci PowerShellu 6 můžete postupovat podle mého příspěvku na blogu.
Krok 2: Nainstalujte klienta OpenSSH a otevřete server SSH. Pro instalaci klienta a serveru a počáteční konfiguraci serveru OpenSSH můžete použít následující příkazy.
sudo apt install openssh-clientsudo apt install openssh-server
Krok 3: Konfigurace a úprava souboru sshd_config v umístění /etc/ssh na cílovém počítači.
Zkontrolujte, zda je povoleno ověřování heslem
PasswordAuthentication yes
Přidejte subsystém pro prostředí PowerShell
Subsystem powershell /usr/bin/pwsh -sshs -NoLogo -NoProfile
Volitelně povolte ověřování klíčem
PubkeyAuthentication yes
Krok 4. Zkontrolujte, zda je povoleno ověřování heslem: Restartujte službu sshd
sudo service sshd restart
SSH Remoting with PowerShell 6
Nyní můžete začít používat PowerShell SSH remoting pro připojení i z různých operačních systémů, například z Windows na Linux nebo z Linuxu na Windows.
Jak již bylo zmíněno, můžete používat stejné příkazy, jaké znáte, jako New-PSSession, Enter-PSSession nebo Invoke-Command.
Jako klient můžete použít také Azure Cloud Shell, na kterém běží PowerShell 6
PowerShell SSH Remoting můžete samozřejmě použít také pro připojení z Linuxu do Linuxu a z Windows do Windows. Další informace o vzdáleném ovládání PowerShell SSH najdete na stránkách Microsoft Docs. Pokud máte nějaké dotazy, dejte mi prosím vědět v komentářích.
Tagy: Naposledy upraveno: Microsoft, PowerShell, PowerShell 6, PowerShell Core, PowerShell přes SSH, Powershell Remoting, nastavení, Nastavení SSH PowerShell, SSH, SSH PowerShell, SSH Transport: duben 2019