V tomto článku nakonfigurujeme autentifikáciu SSH vo Windows pomocou kľúčov RSA pre bezpečný prístup k vzdialeným systémom. Ukážeme, ako vygenerovať kľúče RSA (certifikáty) v systéme Windows a nakonfigurovať server OpenSSH v systéme Windows 10 / Windows Server 2019 na autorizáciu pomocou kľúčov (bez hesiel)..
Autentifikácia pomocou kľúčov SSH sa vo svete Linux často používa a na Windows sa táto funkcia objavila relatívne nedávno. Ide o to, že verejný kľúč klienta sa pridá na server SSH a keď je pripojený, server skontroluje, či klient nemá zodpovedajúci súkromný kľúč..
obsah:
- Generovanie kľúčov RSA na klientovi Windows
- Konfigurácia OpenSSH v systéme Windows na kľúčovú autorizáciu
- Prihlásenie SSH kľúčom pre miestnych správcov Windows
Generovanie kľúčov RSA na klientovi Windows
Na klientskom počítači, z ktorého sa budete pripájať k vzdialenému serveru Windows pomocou OpenSSH, musíte vygenerovať pár RSA kľúčov (verejné a súkromné). Súkromný kľúč je uložený v klientovi (nedávajú ho nikomu!) A verejný kľúč je umiestnený na serveri SSH v súbore authorized_keys. Ak chcete na klientovi Windows vygenerovať kľúče RSA, musíte nainštalovať klienta OpenSSH.
Vo Windows 10 1809 a Windows Server 2019 je klient OpenSSH nainštalovaný ako samostatná vstavaná súčasť:
Prispôsobiteľnosť systému Windows -Online -Name OpenSSH.Client ~~~~ 0.0.1.0
Spustite pravidelnú (neprivilegovanú reláciu PowerShell) a vygenerujte pár kľúčov RSA 2048 pomocou príkazu:
ssh-keygen
Obslužný program vás požiada o zadanie hesla na ochranu súkromného kľúča. Ak zadáte heslo, potom pri každom použití tohto kľúča na autorizáciu SSH budete musieť toto heslo zadať. Nezadal som heslo pre kľúč (neodporúča sa).
Obslužný program ssh-keygen vytvorí adresár .ssh do profilu aktuálneho používateľa systému Windows (C: \ Users \ your_username) a vložte doň 2 súbory:
id_rsa
- súkromný kľúčid_rsa.pub
- verejný kľúč
Po vytvorení kľúčov môžete do služby pridať súkromný kľúč Agent SSH, ktoré vám umožňujú pohodlne spravovať súkromné kľúče a používať ich na autentifikáciu.
Agent SSH môže ukladať súkromné kľúče a poskytovať ich v kontexte zabezpečenia aktuálneho používateľa. Spustite službu ssh-agent a nakonfigurujte AutoShell tak, aby spúšťal príkazy riadenia služby pomocou PowerShell:
set-service ssh-agent StartupType 'Automatic'
Start-Service ssh-agent
Pridajte svoj súkromný kľúč do databázy ssh-agent:
ssh-add "C: \ Users \ youruser \ .ssh \ id_rsa"
Alebo:
ssh-add.exe $ ENV: UserProfile \ .ssh \ id_rsa
Konfigurácia OpenSSH v systéme Windows na kľúčovú autorizáciu
Teraz je potrebné skopírovať verejný kľúč, ktorý ste vygenerovali v klientovi, na váš server SSH (v tomto príklade ide o vzdialený počítač so systémom Windows 10 1903 a nakonfigurovanú službu OpenSSH)..
Už sme podrobne preskúmali konfiguráciu servera OpenSSH vo Windows.Skopírujte súbor id_rsa.pub do katalógu .ssh užívateľský profil, pod ktorým sa budete pripájať k serveru SSH. Napríklad mám vytvoreného používateľa v systéme Windows 10 admin, potom musím skopírovať kľúč do súboru C: \ Users \ admin \ .ssh \ autor_keys.
Kľúč môžete skopírovať na server SSH z klienta pomocou SCP:
scp C: \ Users \ youruser \ .ssh \ id_rsa.pub [email protected]: c: \ users \ admin \ .ssh \ autor_keys
Teraz sa môžete pripojiť k serveru SSH bez zadania užívateľského hesla. A ak ste pre súkromný kľúč nenastavili heslo (prístupové heslo), okamžite sa automaticky pripojíte k vzdialenému serveru Windows..
Ak sa chcete pripojiť cez SSH k vzdialenému hostiteľovi, použite nasledujúci príkaz:
ssh (meno používateľa) @ (meno alebo adresa IP servera SSH)
Napríklad,
ssh admin@192,166,90
To znamená, že sa chcete pripojiť k vzdialenému serveru SSH s adresou 192.168.1.90 na účet admin. Služba SSH Agent sa automaticky pokúsi použiť na autorizáciu predtým uložený súkromný kľúč.
Ak nechcete používať agent ssh-agent na správu kľúčov, môžete určiť cestu k súkromnému kľúču, ktorý chcete použiť na autentifikáciu SSH:ssh [email protected] -i "C: \ Users \ youruser \ .ssh \ id_rsa"
Ak sa vám nepodarilo pripojiť k vášmu SSH serveru pomocou kľúča RSA a stále ste požiadaní o heslo, pravdepodobne je užívateľ, ku ktorému sa pripájate, členom miestnej skupiny správcov serverov (SID skupiny S-1-5-32-544). O tom ďalej.
Prihlásenie SSH kľúčom pre miestnych správcov Windows
OpenSSH používa špeciálne nastavenia prístupu k kľúčom pre používateľov s oprávneniami miestneho správcu Windows.
Najprv musíte namiesto kľúča autorizovaných kľúčov v užívateľskom profile použiť súbor s kľúčmi C: \ ProgramData \ ssh \administrators_authorized_keys. Do tohto textového súboru musíte pridať kľúč (z bezpečnostných dôvodov by mali mať na tento súbor práva len správcovia a SYSTÉM).
Ak chcete použiť kľúč autorizovaných kľúčov z užívateľského profilu a nepreniesť údaje verejného kľúča do súboru administratorors_author_keys, môžete komentovať riadok v konfiguračnom súbore OpenSSH („C: \ ProgramData \ ssh \sshd_config").
Komentujte riadky:
# Správcovia skupiny Match # AuthorizedKeysFile __PROGRAMDATA __ / ssh / administratorors_author_keys
V súbore sshd_config môžete navyše povoliť prihlásenie pomocou kľúčov RSA:
PubkeyAententication yes
A odmietnuť prístup pomocou hesla:
HesloAententifikácia č
Po uložení zmien do súboru sshd_config nezabudnite reštartovať službu sshd.
sshd reštartu služby
Ďalšie malé nuansy. V starších verziách OpenSSH ste museli udeliť NT Service \ sshd právo čítať autorizované_keys.
Ak to chcete urobiť, vykonajte jeden z nasledujúcich krokov:
- Nainštalujte modul OpenSSHUtils:
Install-Module-Foror OpenSSHUtils -Scope AllUsers
. Ak chcete zmeniť povolenia pre súbor, vykonajte príkaz:Opraviť-AutorizovanéKeyPermission -FilePath C: \ Users \ admin \ .ssh \ autor_keys
; - Zmeniť povolenia súborov NTFS pomocou modulu NTFSSecurity alebo icacls;
- Môžete tiež vypnúť režim v konfiguračnom súbore sshd_config StrictModes. V predvolenom nastavení je tento režim povolený a zakazuje autentifikáciu kľúča, ak nie sú súkromné a verejné kľúče dostatočne chránené. Odložte riadok
#StrictModes áno
, zmeniť naStrictModes no
.
Takže ste v systéme Windows nakonfigurovali autentifikáciu SSH pomocou verejného kľúča RSA (certifikát). Teraz môžete túto metódu overenia použiť na zabezpečený prístup na vzdialené servery, automatické zvyšovanie presmerovania portov v tuneli SSH, spúšťanie skriptov a ďalších automatizačných úloh..