Weboldal keresés

Használja az SSH-t és a PowerShellt a fájlok biztonságos átviteléhez most


Réges-régen korlátozott volt az a számítógéptípus, amelyhez a PowerShell Remoting segítségével csatlakozhatott a Windows PowerShell segítségével. Mivel a PowerShell Remoting csak a WsMan szolgáltatót támogatta, nulla volt az esélye, hogy például Linuxot futtató számítógépekhez csatlakozzon. 2015-ben azonban a Microsoft bevezette az SSH-támogatást a Windows rendszerben, ami rengeteg lehetőséget kínált, és végül lehetővé tette az SSH és a PowerShell együttes használatát.

Ebben a cikkben megvizsgáljuk, hogyan állíthatja be a Windows SSH-kliensét, és hogyan használhatja ki az SSH-t és a PowerShell Remoting-ot.

Ez az SSH- és PowerShell-bejegyzés a #PS7Now blogsorozat része. Mindenképpen nézze meg a sorozat többi közreműködőjét a bejegyzés alján.

Mielőtt elkezded

Ez a cikk egy átvezető oktatóanyag lesz. Ha követni kívánja, győződjön meg arról, hogy megfelel a következő előfeltételeknek:

  • Windows 10 - Minden példa a Windows 10 Build 1903-at fogja használni. A példa ugyanabban a tartományban lesz, mint a távoli Windows Server.
  • Windows 10 rendszerre telepített PowerShell v6+ - minden példa a PowerShell 7 RC2-t fogja használni.
  • Távoli SSH-kiszolgáló - Minden példa Windows Server SSH-gépet használ. Ha Linuxos géphez csatlakozik, kihagyhatja a kiszolgáló beállítási lépéseit.
  • A 22-es TCP-port elérhető a távoli szerveren

SSH-kliens (Windows 10) beállítása

Mielőtt megnyitna egy PowerShell-konzolt, először el kell végeznie néhány egyszeri feladatot, hogy az SSH és a PowerShell együtt működjön, és megbizonyosodjon arról, hogy a Windows 10 képes csatlakozni egy távoli SSH-kiszolgálóhoz.

Adja hozzá az OpenSSH mappát a PATH környezeti változóhoz

Az OpenSSH előre telepítve van a Windows 10 rendszeren, de néha szüksége van egy kis segítségre a PowerShell Remoting használatához. Ha már megpróbálta az Enter-PSSession használatával csatlakozni egy távoli SSH-rendszerhez, és az alábbi hibába ütközött, akkor biztosítania kell az OpenSSH végrehajtható fájl elérési útját ( ssh.exe) a PATH környezeti változóban.

Enter-PSSession : An error has occurred which PowerShell cannot handle. A remote session might have ended.

Az OpenSSH mappa elérési útjának PATH környezeti változóhoz való hozzáadásához kattintson a Start gombra, és keresse meg a speciális rendszerbeállításokat, majd kattintson a Speciális rendszerbeállítások megtekintése lehetőségre. > az alábbiak szerint.

Amikor megjelenik a Rendszer tulajdonságai ablak, kattintson a Környezeti változók gombra.

A Környezeti változók ablak Rendszerváltozói alatt válassza az Elérési út lehetőséget, majd kattintson a Szerkesztés lehetőségre.

A Környezeti változó szerkesztése ablakban kattintson az Új lehetőségre, majd adja meg az ssh.exe végrehajtható fájl elérési útját. Ebben az oktatóanyagban az elérési út a C:\Program Files\OpenSSH, az alábbiak szerint. A bevitel után kattintson kétszer az OK gombra az új érték mentéséhez.

Adja meg az SSH alrendszert

Most meg kell adnia az SSH-alrendszert, amelyet a PowerShell hívni szeretne, amikor SSH-n keresztül csatlakozik a távoli Windows Serveren. Ha nem mondja meg a PowerShellnek, hogy melyik alrendszert használja, akkor elkerülhetetlenül a következő hibaüzenet jelenik meg:

Enter-PSSession : A háttérfolyamat hibát jelentett a következő üzenettel: Az SSH-kliens munkamenet hibaüzenettel fejeződött be: az alrendszer kérése meghiúsult a 0-s csatornán.

Ne feledje, hogy ha nem Windows Server géphez csatlakozik, akkor nem kell végrehajtania ezeket a lépéseket.

A távoli Windows Serveren nyissa meg a C:\ProgramData\ssh\ssh_config fájlt. Görgessen le az ssh_config fájl alrendszerek nélküli alapértelmezett felülírása szakaszához. A szakasz úgy fog kinézni, mint az alábbi képernyőkép.

A meglévő Alrendszer sor alá adja hozzá a PowerShell-alrendszert az alábbi sor segítségével:

Subsystem	powershell pwsh.exe -sshs -NoLogo -NoProfile

Most mentse az ssh_config fájlt, és indítsa újra az sshd Windows szolgáltatást a távoli Windows-kiszolgálón az alábbiak szerint.

Get-Service -Name sshd | Restart-Service

A szolgáltatás újraindítása után most már képesnek kell lennie SSH-n és PowerShell-en keresztül csatlakozni.

Csatlakozás PowerShell és SSH segítségével

Most, hogy a konfiguráció kész, ideje kipróbálni a PowerShell Remoting szolgáltatást.

Először próbáljon meg belépni egy interaktív munkamenetbe az Enter-PSSession parancsmag használatával. A megszokottól eltérően nem fogja használni a ComputerName paramétert. Ehelyett a HostName paraméterrel adja meg a távoli számítógépet.

Alapértelmezés szerint a PowerShell Remoting továbbra is a WsMan-t használja. Az alapértelmezett felülbírálásához használja az SSHTransport paramétert, jelezve, hogy SSH-n és PowerShell-en keresztül szeretne csatlakozni.

Amikor először próbál csatlakozni felhasználónévvel és jelszóval, létre kell hoznia egy privát SSH-kulcsot. Ehhez a rendszer felkéri, ahogy az alábbiakban látható. Amikor a rendszer kéri, írja be az „y”-t az elfogadáshoz.

Ezután a rendszer kéri annak a felhasználónak a jelszavát, akivel jelenleg bejelentkezett.

Ne feledje, hogy ebben a példában a Windows 10-ügyfél és a Windows Server SSH-kiszolgáló ugyanabban az Active Directory-tartományban található. Alapértelmezés szerint a PowerShell Remoting megkísérli a hitelesítést a bejelentkezett felhasználóval. Használhatja a Credential paramétert is egy másik felhasználónév és jelszó megadásához.

A jelszó megadása után egy ismerős PowerShell Remoting promptnál kell megjelennie.

Most lépjen ki a munkamenetből az exit gombbal, majd próbálja ki a New-PSSession-t. Figyelje meg alább, hogy ugyanazokkal az HostName és SSHTransport paraméterekkel, mint korábban, a Transport mostantól SSH néven jelenik meg.

Továbbra is használhatja a WsMan-t szállítási protokollként a ComputerName paraméterrel az SSHTransport paraméter használata nélkül.

Nem szükséges felhasználónevet és jelszót használnia az SSH-hoz. Ehelyett használhat egy privát kulcsfájlt, és használhatja a KeyFilePath paramétert a hely megadásához.

Ne felejtse el megtisztítani a nyitott munkameneteit a Get-PSSession | segítségével Remove-PSSession!

Összegzés

Most már tudnia kell, hogyan állíthatja be a Windows 10 és a Windows Server rendszert az SSH használatára a PowerShell Remoting szolgáltatással. A konfigurálás után az egyetlen különbség a WsMan szállítási protokollként és az SSH használata között néhány paraméter!

Ha többet szeretne megtudni a PowerShellről és az SSH-ról, feltétlenül tekintse meg a Microsoft dokumentációs cikkét a PowerShell-távirányítás SSH-n keresztül.

#PS7Now közreműködők

Ez a bejegyzés az alább látható kiváló közreműködők PowerShell 7-re vonatkozó sorozatának része volt. Mindenképpen nézze meg bejegyzéseiket, és nézze meg, mivel foglalkoznak a blogjaikon!

AuthorTwitterBlog
Josh King@WindosNZhttps://toastit.dev/
Adam Bertram@adbertramhttps://adamtheautomator.com/
Jonathan Medd@jonathanmedd
Thomas Lee@doctordnshttps://tfl09.blogspot.com/
Prateek Singh@singhprateikhttps://ridicurious.com
Dave Carroll@thedavecarrollhttps://powershell.anovelidea.org/
Dan Franciscus@dan_franciscushttps://winsysblog.com/
Jeff Hicks@jeffhickshttps://jdhitsolutions.com
Josh Duffney@joshduffneyhttp://duffney.io/
Mike Kanakos@MikeKanakoshttps://www.networkadm.in/
Tommy Maynard@thetommymaynardhttps://tommymaynard.com//

Kapcsolódó cikkek