Microsoft esitteli PowerShellin versiossa 6 PowerShell Remoting over SSH:n, joka mahdollistaa todellisen monialustaisen PowerShellin etäkäyttötoiminnon Linuxin, macOS:n ja Windowsin välillä. PowerShell SSH Remoting luo kohdekoneeseen PowerShell-isäntäprosessin SSH-alijärjestelmäksi. Normaalisti PowerShell remoting käyttää WinRM:ää yhteysneuvotteluihin ja tiedonsiirtoon, mutta WinRM on kuitenkin käytettävissä vain Windows-pohjaisissa koneissa.
Tässä on myös joitakin huonoja puolia. SSH-pohjainen etähallinta ei tällä hetkellä tue etäpäätepisteen konfigurointia eikä JEA:ta (Just Enough Administration). On myös tärkeää ymmärtää, että kyseessä ei ole pelkkä PowerShellin SSH-asiakasohjelma.
SSH-kuljetuksen käyttäminen PowerShell Remotingin kanssa
Käyttääksesi PowerShellin etäkäyttämistä SSH:n kanssa voit käyttää samoja cmdletteja, jotka tunnet PowerShellin etäkäyttämisestä WinRM:n kanssa.
- New-PSSession
- Enter-PSSession
- Invoke-Command
Tässä cmdletissä on 3 uutta parametria, jos käytät PowerShell SSH remotingia.
- -HostName (-Computernamein sijaan, määrittelet SSH-kohteen)
- -UserName (-Credentials -parametrin sijasta voit käyttää -UserName-parametria)
- -KeyFilePath (Jos käytät SSH-avaimen todennusta, voit käyttää -KeyFilePath-parametrilla osoittaa avaintiedostoon)
New-PSSession -HostName tomsssh.server.com -UserName thomas
PowerShellin SSH-remotauksen käyttöönotto
Työskentelyä varten on olemassa myös SSH-käyttökoodi, sinun on suoritettava seuraavat vaiheet kaikissa järjestelmissä ja koneissa.
- Asenna OpenSSH-palvelin ja -asiakas
- OpenSSH for Windows on saatavilla suoraan Windows 10:ssä (1809) ja Windows Server 2019:ssä valinnaisena ominaisuutena.
- Linuxiin asennat OpenSSH:n alustasta riippuen
- Asenna PowerShell 6 kaikkiin järjestelmiin
- Konfiguroi SSH-alijärjestelmä isännöimään PowerShell-prosessia etäkoneessa
- Konfiguroi salasanaan tai avaimiin perustuva todennus
Step by step -asennus SSH-etäyhteydenottoprosessin käyttöönotosta Windowsissa
Vaihe 1. Valitse SSH-palvelin: Asenna ensin PowerShell 6 Windowsiin. Voit seurata blogikirjoitustani asentaaksesi PowerShell 6:n helposti.
Vaihe 2: Asenna OpenSSH Client ja Open SSH Server. Voit asentaa asiakkaan ja palvelimen ja määrittää OpenSSH-palvelimen aluksi seuraavalla komennolla.
# 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
Vaihe 2.1: Koska OpenSSH for Windowsissa on tällä hetkellä vika, polku ei hyväksy välilyöntejä. Sinun on luotava symlinkki hakemistoon, jossa ei ole välilyöntejä. Suorita seuraava komento kohdejärjestelmässä.
mklink /D c:\pwsh "C:\Program Files\PowerShell"
Vaihe 3: Konfiguroi ja muokkaa sshd_config-tiedostoa, joka sijaitsee kohdekoneen osoitteessa $env:ProgramData\ssh.
Tarkista, että salasanatodennus on käytössä
PasswordAuthentication yes
Lisää PowerShellin alijärjestelmä
Subsystem powershell c:\pwsh\pwsh.exe -sshs -NoLogo -NoProfile
Vaihtoehtoisesti ota käyttöön avaintodennus
PubkeyAuthentication yes
Jos sinua kiinnostaa avaimiin perustuvan todennuksen määrittäminen OpenSSH:n avulla Windows Serverillä, lue blogikirjoitus ITOpstalkin blogikirjoituksesta.04)
Vaihe 1: Asenna ensin PowerShell 6 Linuxiin. Voit seurata blogikirjoitustani PowerShell 6:n asentamiseen helposti.
Vaihe 2: Asenna OpenSSH-asiakas ja avaa SSH-palvelin. Voit asentaa asiakkaan ja palvelimen ja konfiguroida OpenSSH-palvelimen aluksi seuraavilla komennoilla.
sudo apt install openssh-clientsudo apt install openssh-server
Vaihe 3: Konfiguroi ja muokkaa sshd_config-tiedostoa paikassa /etc/ssh kohdekoneessa.
Tarkista, että salasanatodennus on käytössä
PasswordAuthentication yes
Lisää PowerShellin alijärjestelmä
Subsystem powershell /usr/bin/pwsh -sshs -NoLogo -NoProfile
Vaihtoehtoisesti ota käyttöön avaintodennus
PubkeyAuthentication yes
Vaihe 4: Käynnistä sshd-palvelu uudelleen
sudo service sshd restart
SSH-tiedonsiirto PowerShell 6:lla
Nyt voit ryhtyä käyttämään SSH-tiedonsiirtoa käyttäen yhteyden muodostamista PowerShell SSH-tiedonsiirtojärjestelmään, jopa erilaisista käyttöjärjestelmistä, kuten esimerkiksi Windowsista Linuxiin tai Linuxista Windowsiin.
Kuten aiemmin mainittiin, voit käyttää samoja tuttuja komentoja kuten New-PSSession, Enter-PSSession tai Invoke-Command.
Asiakkaana voit käyttää myös Azure Cloud Shelliä, joka käyttää PowerShell 6:ta
Voit tietysti käyttää PowerShell SSH Remotingia myös yhteyden muodostamiseen Linuxista Linuxiin ja Windowsista Windowsiin. Lisätietoa PowerShell SSH remotingista löydät Microsoftin Docs-sivuilta. Jos sinulla on kysyttävää, kerro minulle kommenteissa.
Tunnisteet: Microsoft, PowerShell, PowerShell 6, PowerShell Core, PowerShell over SSH, Powershell Remoting, setup, Setup SSH PowerShell, SSH, SSH PowerShell, SSH Transport Last modified: Huhtikuu 4, 2019