Nastavení PowerShell SSH Remoting v PowerShellu 6

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.

Instalace PowerShellu 6

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.

Upravte sshd_config

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.

Instalace PowerShellu 6 Linux

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. PowerShell 6 SSH Remoting

Jak již bylo zmíněno, můžete používat stejné příkazy, jaké znáte, jako New-PSSession, Enter-PSSession nebo Invoke-Command.

PowerShell SSH Remoting Linux to Windows

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

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.