Počevši od sustava Windows 10 1809 i Windows Server 2019 operativni sustav ima integrirani SSH poslužitelj temeljen na OpenSSH. U ovom ćemo članku pokazati kako instalirati i konfigurirati OpenSSH poslužitelj u sustavu Windows 10 i na njega se daljinsko povezati pomoću sigurnog SSH protokola (dobro, baš kao u Linuxu 🙂).
Možete instalirati OpenSSH poslužitelj u prethodnim verzijama sustava Windows, ali za to morate preuzeti i instalirati OpenSSH port za win32 s GitHub-a - Win32-OpenSSH (Https://github.com/powershell/Win32-OpenSSH). Primjer instaliranja i konfiguriranja Win32-OpenSSH nalazi se u članku "Instalacija i konfiguriranje SFTP poslužitelja (SSH FTP) u sustavu Windows".sadržaj:
- Instaliranje OpenSSH poslužitelja na Windows
- Postavljanje SSH poslužitelja u sustavu Windows
- Sshd_config: Datoteka za konfiguriranje poslužitelja OpenSSH
- Spajajte se na Windows 10 putem SSH-a
Instaliranje OpenSSH poslužitelja na Windows
Pogledajmo kako instalirati komponentu OpenSSH Server u Windows 10 1903 (Windows Server 2019 čini isto).
OpenSSH (poput RSAT-a) je već uključen u ove verzije sustava Windows kao značajka na zahtjev (FoD).
Ako imate izravnu internetsku vezu, možete instalirati OpenSSH poslužitelj pomoću PowerShell-a
Add-WindowsCapability -Online -Name OpenSSH.Server *
Ili pomoću DISM-a:
dism / Online / Mogućnosti dodavanja / MogućnostName:OpenSSH.Server~~.0.0.0.0
U sustavu Windows 10, ova se komponenta može instalirati i na ploči s mogućnostima (Aplikacije -> Upravljanje dodatnim komponentama -> Dodaj komponentu). Pronađi na popisu Otvorite ssh server i pritisnite gumb instalirati).
Da biste provjerili je li OpenSSH poslužitelj instaliran, pokrenite:Get-WindowsCapability -Online | ? Naziv 'OpenSSH.Ser *'
Stanje: Instalirano
Postavljanje SSH poslužitelja u sustavu Windows
Nakon registriranog poslužitelja OpenSSH na Windows-u, morate promijeniti vrstu početka usluge sshd za automatsko pokretanje usluge pomoću PowerShell-a:
Set-Service -Name sshd -StartupType 'Automatski'
Start-Service sshd
Pomoću nestata provjerite je li SSH poslužitelj sada pokrenut u sustavu i čeka veze na priključku 22:
netstat -na | pronađi ": 22"
Provjerite je li omogućeno pravilo zaštitnog zida Windows Defender koje dopušta dolazne veze na Windows putem TCP / 22.
Get-NetFirewallRule -Name * OpenSSH-poslužitelj * | odaberite Name, DisplayName, Opis, Enabled
Naziv DisplayName Opis Omogućen ---- ----------- ----------- ------- OpenSSH-Server-In-TCP OpenSSH SSH Server (sshd) Pravilo ulaznih podataka za OpenSSH SSH poslužitelj (sshd) Točno
Ako je pravilo onemogućeno (omogućeno = lažno) ili nedostaje, možete stvoriti novo ulazno pravilo pomoću naredbe New-NetFirewallRule:
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Anabled True -Direction Inbound -Protocol TCP -Action Allow Al--LocalPort 22
Prema zadanim postavkama važne OpenSSH komponente pohranjuju se u sljedećim direktorijima:
- Izvršne datoteke OpenSSH poslužitelja:
C: \ Windows \ System32 \ OpenSSH \
- Konfiguracijska datoteka Sshd_config (stvorena nakon prvog pokretanja usluge):
C: \ ProgramData \ ssh
- OpenSSH magazin:
C: \ windows \ system32 \ OpenSSH \ logs \ sshd.log
- Datoteka i ključevi autorizovanih_knjiga:
% USERPROFILE% \. Ssh \
Kada instalirate OpenSSH poslužitelj u sustav, stvara se novi lokalni sshd korisnika.
Sshd_config: Datoteka za konfiguriranje poslužitelja OpenSSH
Možete promijeniti postavke OpenSSH poslužitelja u konfiguracijskoj datoteci% programdata% \ ssh \sshd_config.
Na primjer, zabraniti SSH vezu za određenog korisnika domene (i sve korisnike određene domene), dodajte sljedeće upute na kraju datoteke:
DenyUsers winitpro \ [email protected] DenyUsers corp \ *
Da biste omogućili povezivanje samo za određenu skupinu domena:
AllowGroups winitpro \ sshadmins
Ili možete dopustiti pristup lokalnoj grupi:
AllowGroups sshadmins
Moguće je zabraniti prijavu pod računima s administratorskim pravima, u ovom slučaju izvoditi privilegirane radnje u SSH sesiji, morate učiniti runas.
Administratori Denygroups
Sljedeće smjernice omogućuju SSH pristup ključu (pristup Windows-u putem SSH-a po ključu detaljno će se raspravljati u sljedećem članku) i lozinkom:
PubkeyAuthentication da PasswordAuthentication da
Možete promijeniti port na kojem prihvaća OpenSSH veze u konfiguracijskoj datoteci sshd_config u direktivi Port..
Nakon bilo kakvih promjena u konfiguracijskoj datoteci sshd_config, trebate ponovo pokrenuti sshd usluge:restart-usluga sshd
Spajajte se na Windows 10 putem SSH-a
Sada se možete pokušati povezati sa svojim Windows 10 putem SSH klijenta (koristim kit, ali mogu koristiti ugrađeni ssh klijent Windows-a).
Pri prvom povezivanju pojavljuje se standardni zahtjev za dodavanje računala na popis poznatih SSH domaćinima.
Kliknite Da i u prozoru koji se otvori prijavite se kao Windows korisnik.
Nakon uspješne veze, naredbena školjka cmd.exe pokreće se s odgovorom.
admin @ win10tst C: \ Korisnici \ admin>
U naredbenom retku možete izvršavati razne naredbe, pokretati skripte i programe.
Radije radim na naredbenoj liniji PowerShell. Da biste pokrenuli PowerShell tumač, pokrenite:
powershell.exe
Da biste promijenili zadanu Shell u OpenSSH-u iz cmd.exe u PowerShell, napravite promjenu u registru pomoću ove naredbe:
Novo-ItemProperty -Path "HKLM: \ SOFTWARE \ OpenSSH" -Name DefaultShell -Value "C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe" -PropertyType String -Force
Ostaje ponovno pokrenuti SSH vezu i provjeriti da se tijekom povezivanja koristi školjka PowerShell (to je naznačeno u pozivu PS C: \ Korisnici \ admin>
).
U SSH sesiji pokrenuta je PowerShell konzola u kojoj djeluju uobičajene funkcije: automatsko dovršavanje, bojanje pomoću PSReadLine modula, povijest naredbi itd. Ako je trenutni korisnik član grupe lokalnih administratora, tada se sve naredbe u njegovoj sesiji izvršavaju s povišenim pravima čak i kad je omogućen UAC.