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 -NoProfileMost 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-ServiceA 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
Credentialparamé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
KeyFilePathparamé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!
| Author | Blog | |
|---|---|---|
| Josh King | @WindosNZ | https://toastit.dev/ |
| Adam Bertram | @adbertram | https://adamtheautomator.com/ |
| Jonathan Medd | @jonathanmedd | |
| Thomas Lee | @doctordns | https://tfl09.blogspot.com/ |
| Prateek Singh | @singhprateik | https://ridicurious.com |
| Dave Carroll | @thedavecarroll | https://powershell.anovelidea.org/ |
| Dan Franciscus | @dan_franciscus | https://winsysblog.com/ |
| Jeff Hicks | @jeffhicks | https://jdhitsolutions.com |
| Josh Duffney | @joshduffney | http://duffney.io/ |
| Mike Kanakos | @MikeKanakos | https://www.networkadm.in/ |
| Tommy Maynard | @thetommymaynard | https://tommymaynard.com// |







