Ebben a cikkben az SSH hitelesítést a Windows rendszerben az RSA kulcsok segítségével konfiguráljuk a távoli rendszerek biztonságos eléréséhez. Megmutatjuk, hogyan lehet RSA kulcsokat (tanúsítványokat) létrehozni a Windows rendszerben, és hogyan konfigurálhatjuk az OpenSSH szervert a Windows 10 / Windows Server 2019 rendszerben kulcsokkal történő engedélyezéshez (jelszavak nélkül).
Az SSH kulcsokkal történő hitelesítést széles körben használják a Linux világában, és Windows rendszeren ez a funkció viszonylag nemrégiben jelent meg. Az ötlet az, hogy az ügyfél nyilvános kulcsát hozzáadjuk az SSH szerverhez, és amikor csatlakozik, a szerver ellenőrzi az ügyfél megfelelő magánkulcsát..
Tartalom:
- RSA kulcsok generálása Windows kliensen
- Az OpenSSH konfigurálása a Windows rendszeren a kulcsfontosságú hitelesítéshez
- SSH kulcs bejelentkezés a helyi Windows rendszergazdák számára
RSA kulcsok generálása Windows kliensen
Az ügyfélszámítógépen, ahonnan csatlakozik egy távoli Windows szerverhez az OpenSSH segítségével, elő kell hoznia egy pár RSA kulcsot (nyilvános és magán). A privát kulcsot az ügyfél tárolja (ne add senkinek!), És a nyilvános kulcsot egy fájlba helyezi az SSH szerverre authorized_keys. Az RSA kulcsok létrehozásához egy Windows kliensen telepítenie kell az OpenSSH klienst.
Windows 10 1809 és Windows Server 2019 rendszereken az OpenSSH klienst külön beépített összetevőként telepíti:
Add-WindowsCapability -Online -Név OpenSSH.Client ~~~~ 0.0.1.0
Indítson el egy rendszeres (nem előnyben részesített PowerShell-munkamenetet), és hozzon létre egy pár RSA 2048 kulcsot a következő paranccsal:
ssh-keygen
A segédprogram megkérdezi, hogy adja meg a jelszót a magánkulcs védelme érdekében. Ha megad egy jelszót, akkor minden alkalommal, amikor ezt a kulcsot használja az SSH hitelesítéshez, meg kell adnia ezt a jelszót. Nem adtam meg a kulcshoz tartozó jelszót (nem ajánlott).
Az ssh-keygen segédprogram létrehoz egy könyvtárat .ssh az aktuális Windows felhasználó profiljában (C: \ Users \ your_username), és tegyen bele 2 fájlt:
id_rsa
- privát kulcsid_rsa.pub
- nyilvános kulcs
A kulcsok létrehozása után hozzáadhatja a privát kulcsot a szolgáltatáshoz SSH ügynök, amely lehetővé teszi a magánkulcsok kényelmes kezelését és hitelesítéshez történő felhasználását.
Az SSH Agent tárolhatja a magánkulcsokat és biztosítja azokat az aktuális felhasználó biztonsági környezetében. Indítsa el az ssh-agent szolgáltatást, és konfigurálja az AutoShell szolgáltatást vezérlő parancsok elindításához a PowerShell használatával:
set-service ssh-agent StartupType 'Automatikus'
Start-Service ssh-agent
Adja hozzá a privát kulcsát az ssh-agent adatbázisához:
ssh-add "C: \ Users \ youruser \ .ssh \ id_rsa"
Vagy így:
ssh-add.exe $ ENV: UserProfile \ .ssh \ id_rsa
Az OpenSSH konfigurálása a Windows rendszeren a kulcsfontosságú hitelesítéshez
Most az ügyfélen létrehozott nyilvános kulcsot át kell másolni az SSH szerverre (ebben a példában egy távoli számítógép, amelyen Windows 10 1903 található és konfigurált OpenSSH szolgáltatás)..
Már részletesen megvizsgáltuk az OpenSSH szerver konfigurációját a Windows rendszerben.Fájl másolása id_rsa.pub a katalógusba .ssh felhasználói profil, amely alatt csatlakozik az SSH szerverhez. Például van egy felhasználó, aki a Windows 10 rendszerben készült admin, akkor a kulcsot át kell másolnom egy fájlba C: \ Felhasználók \ admin \ .ssh \ engedélyezett kulcsok.
A kulcsot az SSH kiszolgálóra másolhatja az ügyféltől az SCP használatával:
scp C: \ Felhasználók \ felhasználója \ .ssh \ id_rsa.pub [email protected]: c: \ felhasználók \ admin \ .ssh \ engedélyezett_kulcsok
Most már csatlakozhat az SSH szerverhez felhasználói jelszó megadása nélkül. És ha még nem állított be jelszót (jelmondatot) a privát kulcshoz, akkor azonnal automatikusan csatlakozik a távoli Windows szerverhez.
SSH-n keresztül távoli gazdagéphez történő csatlakozáshoz használja a következő parancsot:
ssh (felhasználónév) @ (az SSH szerver neve vagy IP címe)
Például,
Ez azt jelenti, hogy csatlakozni szeretne egy távoli SSH szerverhez a címmel 192.168.1.90 számla alatt admin. Az SSH Agent szolgáltatás automatikusan megkísérel egy korábban tárolt privát kulcsot használni a hitelesítéshez.
Ha nem akarja használni az ssh-agent-t a kulcskezeléshez, megadhatja az SSH-hitelesítéshez használni kívánt privát kulcs elérési útját:ssh [email protected] -i "C: \ Users \ youruser \ .ssh \ id_rsa"
Ha nem sikerült csatlakozni az SSH szerverhez az RSA kulcs segítségével, és továbbra is jelszót kérnek, akkor valószínűleg a felhasználó, amellyel csatlakozik, a helyi szerver adminisztrátorok csoportjának tagja (az S-1-5-32-544 csoport SID). Erről tovább.
SSH kulcs bejelentkezés a helyi Windows rendszergazdák számára
Az OpenSSH speciális kulcshozzáférési beállításokat használ a helyi Windows rendszergazdai jogosultságokkal rendelkező felhasználók számára.
Mindenekelőtt, a felhasználói profilban szereplő engedélyezett kulcsok helyett a fájlt a C: \ ProgramData \ ssh \ kulcsokkal kell használni.administrators_authorized_keys. A kulcsot hozzá kell adnia ehhez a szövegfájlhoz (biztonsági okokból csak a rendszergazdák és a SYSTEM jogosultak lesznek erre a fájlra).
Ha az engedélyezett_kulcs kulcsot használja a felhasználói profilból, és nem továbbítja a nyilvános kulcs adatait az adminisztrátorok_autorizált kulcsok fájlba, kommentálhatja az sort az OpenSSH konfigurációs fájlban ("C: \ ProgramData \ ssh \sshd_config„).
Kommentáld a sorokat:
#Match csoport adminisztrátorai # AuthorizedKeysFile __PROGRAMDATA __ / ssh / administrators_authorized_keys
Ezenkívül az sshd_config fájlban engedélyezheti a bejelentkezést az RSA kulcsokkal:
PubkeyHitelesítés igen
És megtagadhatja a hozzáférést jelszóval:
JelszóHitelesítési szám
Az sshd_config fájl módosításainak mentése után ne felejtse el újraindítani az sshd szolgáltatást.
restart-service sshd
Egy másik apró árnyalat. Az OpenSSH régebbi verzióiban az NT Service \ sshd-nek meg kellett adnia a jogosult kulcsok olvasási jogát.
Ehhez hajtsa végre a következők egyikét:
- Telepítse a modult OpenSSHUtils:
Telepítő modul - Az OpenSSHUtils kényszerítése - Az összes felhasználó használata
. A fájl engedélyének megváltoztatásához hajtsa végre a következő parancsot:Javítás-AuthorizedKeyPermission -FilePath C: \ Felhasználók \ admin \ .ssh \ engedélyezett_kulcsok
; - Az NTFS fájljogosultságainak módosítása az NTFSSecurity modul vagy az icacls segítségével;
- Vagy letilthatja az üzemmódot az sshd_config konfigurációs fájlban StrictModes. Alapértelmezés szerint ez az üzemmód engedélyezve van, és tiltja a kulcsok hitelesítését, ha a privát és a nyilvános kulcsok nem vannak megfelelő védelemben. Távolítsa el a sort
#StrictModes igen
, váltaniStrictModes no
.
Tehát konfigurálta az SSH hitelesítést a Windows rendszerben az RSA nyilvános kulcs (tanúsítvány) használatával. Most ezt a hitelesítési módszert használhatja a távoli szerverek biztonságos eléréséhez, automatikusan növelve a port továbbítást az SSH alagútban, futtatva szkripteket és más automatizálási feladatokat..