Cu PowerShell versiunea 6, Microsoft a introdus PowerShell Remoting peste SSH, care permite o adevărată remoting PowerShell multiplatformă între Linux, macOS și Windows. PowerShell SSH Remoting creează un proces gazdă PowerShell pe mașina țintă ca subsistem SSH. În mod normal, PowerShell remoting utilizează WinRM pentru negocierea conexiunii și transportul de date, însă WinRM este disponibil numai pe mașinile bazate pe Windows.
Există, de asemenea, unele dezavantaje. Remoting-ul bazat pe SSH nu suportă în prezent configurarea endpoint-ului la distanță și JEA (Just Enough Administration). Este, de asemenea, important de înțeles, că acesta nu este doar un alt client SSH PowerShell.
Utilizați transportul SSH cu PowerShell Remoting
Pentru a utiliza PowerShell remoting cu SSH, puteți utiliza aceleași cmdlet-uri, pe care le cunoașteți din PowerShell remoting cu WinRM.
- New-PSSession
- Enter-PSSession
- Invoke-Command
Există 3 parametri noi pentru aceste cmdlet-uri, dacă utilizați PowerShell SSH remoting.
- -HostName (În loc de -Computername, definiți ținta SSH)
- -UserName (În loc de -Credentials, utilizați parametrul -UserName)
- -KeyFilePath (Dacă utilizați autentificarea cu cheie SSH, puteți utiliza parametrul -KeyFilePath pentru a indica fișierul de chei)
New-PSSession -HostName tomsssh.server.com -UserName thomas
Setup PowerShell SSH Remoting
Pentru a lucra cu PowerShell SSH, va trebui să efectuați următorii pași pe toate sistemele și mașinile.
- Instalați OpenSSH Server și Client
- OpenSSH pentru Windows este disponibil direct în Windows 10 (1809) și Windows Server 2019 ca o caracteristică opțională.
- Pe Linux instalați OpenSSH în funcție de platformă
- Instalați PowerShell 6 pe toate sistemele
- Configurați subsistemul SSH pentru a găzdui un proces PowerShell pe mașina de la distanță
- Configurați autentificarea bazată pe parolă sau pe cheie
Configurați pas cu pas configurarea SSH remoting pe Windows
Pasul 1: Configurați SSH remoting pe Windows
: Mai întâi va trebui să instalați PowerShell 6 pe Windows. Puteți urmări postarea mea de pe blog pentru a instala cu ușurință PowerShell 6.
Etapa 2: Instalați OpenSSH Client și Open SSH Server. Deoarece există în prezent o eroare în OpenSSH pentru Windows, calea nu acceptă spații. Trebuie să creați un symlink către un director fără spații. Rulați următoarea comandă pe sistemul țintă.
mklink /D c:\pwsh "C:\Program Files\PowerShell"
Etapa 3: Configurați și editați fișierul sshd_config aflat la $env:ProgramData\ssh pe mașina țintă.
Verificați dacă autentificarea prin parolă este activată
PasswordAuthentication yes
Adaugați subsistemul pentru PowerShell
Subsystem powershell c:\pwsh\pwsh.exe -sshs -NoLogo -NoProfile
Activați opțional autentificarea prin cheie
PubkeyAuthentication yes
Dacă sunteți interesați să configurați autentificarea bazată pe cheie cu OpenSSH pe Windows Server, consultați postarea de pe blogul ITOpstalk.com de Orin Thomas (Microsoft Cloud Advocate).
Pasul 4: Reporniți serviciul sshd
Restart-Service sshd
Pas cu pas Configurarea pas cu pas a remoting-ului SSH pe Linux (Ubuntu 18.04)
Pasul 1: Mai întâi va trebui să instalați PowerShell 6 pe Linux. Puteți urmări postarea mea de pe blog pentru a instala cu ușurință PowerShell 6.
Pasul 2: Instalați OpenSSH Client și deschideți serverul SSH. Pentru a instala clientul și serverul și pentru a configura inițial serverul OpenSSH, puteți utiliza următoarele comenzi.
sudo apt install openssh-clientsudo apt install openssh-server
Pasul 3: Configurați și editați fișierul sshd_config în locația /etc/ssh de pe mașina țintă.
Verificați dacă autentificarea prin parolă este activată
PasswordAuthentication yes
Adaugați subsistemul pentru PowerShell
Subsystem powershell /usr/bin/pwsh -sshs -NoLogo -NoProfile
Activați opțional autentificarea prin cheie
PubkeyAuthentication yes
Pasul 4: Reporniți serviciul sshd
sudo service sshd restart
SSH Remoting cu PowerShell 6
Acum puteți începe să folosiți PowerShell SSH remoting pentru a vă conecta chiar și de la sisteme de operare diferite, cum ar fi Windows la Linux sau Linux la Windows.
După cum am menționat anterior, puteți folosi aceleași comenzi cu care sunteți familiarizați, cum ar fi New-PSSession, Enter-PSSession sau Invoke-Command.
În calitate de client, puteți utiliza, de asemenea, Azure Cloud Shell, care rulează PowerShell 6
Desigur, puteți utiliza, de asemenea, PowerShell SSH Remoting pentru a vă conecta de la Linux la Linux și de la Windows la Windows. Puteți găsi mai multe informații despre PowerShell SSH remoting pe paginile Microsoft Docs. Dacă aveți întrebări, vă rog să mă anunțați în comentarii.
Tags: Microsoft, PowerShell, PowerShell, PowerShell 6, PowerShell Core, PowerShell over SSH, Powershell Remoting, setup, Setup SSH PowerShell, SSH, SSH PowerShell, SSH PowerShell, SSH Transport Ultima modificare: Aprilie 4, 2019