openssh

A Windows 10 1809-től és a Windows Server 2019-től kezdve az operációs rendszer rendelkezik az OpenSSH alapú integrált SSH szerverrel. Ebben a cikkben bemutatjuk, hogyan telepíthetünk és konfigurálhatunk egy OpenSSH szervert a Windows 10 rendszerben, és hogyan tudunk távolról csatlakozni egy biztonságos SSH protokoll használatával (nos, csakúgy, mint Linux 🙂).

Telepítheti az OpenSSH szervert a Windows korábbi verzióiban, de ehhez le kell töltenie és telepítenie kell a Win32 OpenSSH portját a GitHubból - Win32-OpenSSH (Https://github.com/powershell/Win32-OpenSSH). A Win32-OpenSSH telepítésére és konfigurálására példa az „SFTP szerver (SSH FTP) telepítése és konfigurálása Windows rendszerben” című cikk található..

Tartalom:

  • OpenSSH Server telepítése Windows rendszeren
  • SSH-kiszolgáló beállítása a Windows rendszerben
  • Sshd_config: OpenSSH szerver konfigurációs fájl
  • Csatlakozás a Windows 10-hez SSH-n keresztül

OpenSSH Server telepítése Windows rendszeren

Lássuk, hogyan telepítsük az OpenSSH Server összetevőt a Windows 10 1903 rendszerben (a Windows Server 2019 ugyanezt teszi).

Az OpenSSH (mint az RSAT) már szerepel a Windows ezen verzióiban, mint Feature on Demand (FoD).

Ha közvetlen internetkapcsolat van, telepítheti az OpenSSH szervert a PowerShell használatával

Add-WindowsCapability -Online -Név OpenSSH.Server *

Vagy a DISM használatával:

dism / Online / Add-Capability /CapabilityName:OpenSSH.Server~~.0.0.0.0

A Windows 10 rendszerben ez az összetevő az Opciók panelen keresztül is telepíthető (Alkalmazások -> További összetevők kezelése -> Összetevő hozzáadása). Keresse meg a listában Nyissa meg az ssh szervert és nyomja meg a gombot felszerel).

Futtassa az OpenSSH szerver telepítésének ellenőrzéséhez:
Get-WindowsCapability -Online | ? Névszerű 'OpenSSH.Ser *'

Állapot: Telepítve

SSH-kiszolgáló beállítása a Windows rendszerben

Az OpenSSH regisztrált szerver után a Windowson meg kell változtatnia a szolgáltatás indításának típusát sshd a szolgáltatás automatikus indításához és indításához a PowerShell használatával:

Set-Service -Name sshd -StartupType 'Automatic'
Start-Service sshd

A nestat használatával ellenőrizze, hogy az SSH-kiszolgáló most fut-e a rendszeren, és vár a csatlakozásra a 22. porton:

netstat -na | talál ": 22"

Ellenőrizze, hogy engedélyezve van-e a Windows Defender tűzfalszabály, amely lehetővé teszi a Windowshoz bejövő kapcsolatok TCP / 22-en keresztüli használatát.

Get-NetFirewallRule -Name * OpenSSH-Server * | válassza a Név, Kijelzőnév, Leírás, Engedélyezve

Név Kijelzőnév Leírás engedélyezve ---- ----------- ----------- ------- OpenSSH-Server-In-TCP OpenSSH SSH Server (sshd) Bejövő szabály az OpenSSH SSH szerver számára (sshd) Igaz

Ha a szabály le van tiltva (engedélyezve = hamis), vagy hiányzik, létrehozhat egy új bejövő szabályt a New-NetFirewallRule paranccsal:

Új-NetFirewallRule -Név sshd -DisplayName 'OpenSSH Server (sshd)' - Engedélyezve True-Irányított bejövő -Protokoll TCP -Action engedélyezése -LocalPort 22

Alapértelmezés szerint a fontos OpenSSH összetevők a következő könyvtárakban vannak tárolva:

  • OpenSSH Server futtatható fájlok: C: \ Windows \ System32 \ OpenSSH \
  • Sshd_config konfigurációs fájl (a szolgáltatás első indítása után jött létre): C: \ ProgramData \ ssh
  • OpenSSH Magazine: C: \ windows \ system32 \ OpenSSH \ logs \ sshd.log
  • Authorized_keys fájl és kulcsok: % USERPROFILE% \. Ssh \

Az OpenSSH szervernek a rendszerbe történő telepítésekor egy új helyi felhasználói sshd jön létre.

Sshd_config: OpenSSH szerver konfigurációs fájl

Az OpenSSH szerver beállításait a% programdata% \ ssh \ konfigurációs fájlban módosíthatjasshd_config.

Például egy adott domain felhasználó (és egy meghatározott domain összes felhasználójának) SSH-kapcsolatának tiltásához vegye fel a következő irányelveket a fájl végére:

DenyUsers winitpro \ [email protected] DenyUsers corp \ *

Csak egy adott tartománycsoporthoz történő kapcsolódás engedélyezése:

AllowGroups winitpro \ sshadmins

Vagy engedélyezheti a hozzáférést a helyi csoporthoz:

AllowGroups sshadmins

Letilthatja a bejelentkezést a rendszergazdai jogokkal rendelkező fiókok alatt, ebben az esetben az SSH-munkamenetben kiváltságos műveletek végrehajtásához runun kell végrehajtania.

Denygroups adminisztrátorok

A következő irányelvek lehetővé teszik az SSH kulcsos elérését (a Windowshoz való hozzáférést az SSH kulcson keresztül a következő cikk részletesebben tárgyalja) és a jelszó:

PubkeyAuthentication igen PasswordAuthentication igen

Megváltoztathatja azt a portot, amelyen elfogadja az OpenSSH kapcsolatokat, a port irányelv sshd_config konfigurációs fájljában.

Az sshd_config konfigurációs fájl bármilyen módosítása után újra kell indítania az sshd szolgáltatásokat:

restart-service sshd

Csatlakozás a Windows 10-hez SSH-n keresztül

Most megpróbálhat csatlakozni a Windows 10-hez az SSH-ügyfélen keresztül (gitttel, de a Windows beépített ssh-klienssel.

Az első csatlakozáskor egy általános kérelem jelenik meg, amely hozzáadja a gazdagépet az ismert SSH-gazdagépek listájához.

Kattintson az Igen gombra, és a megnyíló ablakban jelentkezzen be Windows felhasználóként.

Sikeres csatlakozás után a parancssor elindítja a cmd.exe parancshéjat.

admin @ win10tst C: \ Felhasználók \ admin>

A parancssorban különféle parancsokat futtathat, szkripteket és programokat futtathat.

Inkább a PowerShell parancssoron dolgozom. A PowerShell tolmács elindításához futtassa:

powershell.exe

Az OpenSSH alapértelmezett Shellének a cmd.exe fájlról PowerShellre változtatásához hajtsa végre a következő parancsot a beállításjegyzékben:

New-ItemProperty - "HKLM: \ SOFTWARE \ OpenSSH" elérési út -Név DefaultShell-Érték "C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe" -PropertyType String -Force

Ezután újra kell indítani az SSH-kapcsolatot, és ellenőriznie kell, hogy a kapcsolat során a PowerShell-héjat használják-e (ezt a meghívó jelzi) PS C: \ Felhasználók \ admin>).

Az SSH munkamenetben elindult a PowerShell konzol, amelyben a szokásos funkciók működnek: automatikus kitöltés, a PSReadLine modul által végzett színezés, a parancsok előzményei stb. Ha az aktuális felhasználó a helyi adminisztrátorok csoportjának tagja, akkor a szekciójában az összes parancsot megnövelt jogokkal hajtják végre, még akkor is, ha az UAC engedélyezve van.