Od Windows 10 1809 in Windows Server 2019 ima operacijski sistem integriran SSH strežnik, ki temelji na OpenSSH. V tem članku bomo pokazali, kako namestiti in konfigurirati strežnik OpenSSH v sistemu Windows 10 in se nanj na daljavo povezati s pomočjo varnega protokola SSH (no, tako kot v Linuxu Linux).
Strežnik OpenSSH lahko namestite v prejšnjih različicah sistema Windows, vendar za to morate prenesti in namestiti vrata OpenSSH za win32 iz GitHub-a - Win32-OpenSSH (https://github.com/powershell/Win32-OpenSSH). Primer namestitve in konfiguriranja programa Win32-OpenSSH je v članku »Namestitev in konfiguriranje strežnika SFTP (SSH FTP) v sistemu Windows«.Vsebina:
- Namestitev strežnika OpenSSH v sistemu Windows
- Nastavitev SSH strežnika v sistemu Windows
- Sshd_config: Konfiguracijska datoteka strežnika OpenSSH
- Povežite se z Windows 10 prek SSH
Namestitev strežnika OpenSSH v sistemu Windows
Poglejmo, kako namestiti komponento OpenSSH Server v Windows 10 1903 (Windows Server 2019 naredi isto).
OpenSSH (kot RSAT) je že vključen v te različice Windows kot Feature on Demand (FoD).
Če imate neposredno internetno povezavo, lahko namestite strežnik OpenSSH s programom PowerShell
Add-WindowsCapability -Online -Name OpenSSH.Server *
Ali pa uporabite DISM:
dism / Online / Zmogljivost dodajanja /CapabilityName:OpenSSH.Server~~.0.0.0.0
V sistemu Windows 10 lahko to komponento namestite tudi prek plošče z možnostmi (Aplikacije -> Upravljanje dodatnih komponent -> Dodaj komponento). Poiščite na seznamu Odprite ssh strežnik in pritisnite gumb Namestite).
Če želite preveriti, ali je strežnik OpenSSH nameščen, zaženite:Get-WindowsCapability -Online | ? "OpenSSH.Ser *" v obliki imena
Stanje: Nameščeno
Nastavitev SSH strežnika v sistemu Windows
Po registriranem strežniku OpenSSH v operacijskem sistemu Windows morate spremeniti vrsto zagona storitve sshd samodejno in zagon storitve s programom PowerShell:
Set-Service -Name sshd -StartupType 'Samodejno'
Start-Service sshd
Z nestat preverite, ali SSH strežnik zdaj deluje v sistemu in čaka na povezave na vratih 22:
netstat -na | najdi ": 22"
Preverite, ali je omogočeno pravilo požarnega zidu Windows Defender, ki omogoča dohodne povezave z Windows prek TCP / 22.
Get-NetFirewallRule -Name * OpenSSH-strežnik * | izberite Name, DisplayName, Opis, Enabled
Ime PrikazName Opis Omogočen ---- ----------- ----------- ------- OpenSSH-Server-In-TCP OpenSSH SSH strežnik (sshd) Pravilo vhodnih podatkov za strežnik OpenSSH SSH (sshd) True
Če je pravilo onemogočeno (omogočeno = napačno) ali manjka, lahko ustvarite novo vhodno pravilo z ukazom New-NetFirewallRule:
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Anabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
Pomembne komponente OpenSSH so privzeto shranjene v naslednjih imenikih:
- Izvršljive datoteke strežnika OpenSSH:
C: \ Windows \ System32 \ OpenSSH \
- Konfiguracijska datoteka Sshd_config (ustvarjena po prvem zagonu storitve):
C: \ ProgramData \ ssh
- Revija OpenSSH:
C: \ windows \ system32 \ OpenSSH \ logs \ sshd.log
- Datoteka in ključi pooblaščenih ključev:
% USERPROFILE% \. Ssh \
Ko namestite OpenSSH strežnik v sistem, se ustvari nov lokalni sshd uporabnika.
Sshd_config: Konfiguracijska datoteka strežnika OpenSSH
Nastavitve OpenSSH strežnika lahko spremenite v konfiguracijski datoteki% programdata% \ ssh \sshd_config.
Na primer, če želite prepovedati povezavo SSH za določenega uporabnika domene (in vse uporabnike določene domene), na koncu datoteke dodajte naslednje direktive:
DenyUsers winitpro \ [email protected] DenyUsers corp \ *
Če želite dovoliti povezavo samo za določeno skupino domen:
AllowGroups winitpro \ sshadmins
Lahko pa omogočite dostop lokalni skupini:
AllowGroups sshadmins
Možno je prepovedati prijavo v račune s skrbniškimi pravicami, v tem primeru izvajati privilegirana dejanja v seji SSH, morate narediti runas.
Skrbniki Denygroups
Naslednje direktive omogočajo dostop SSH po ključu (dostop do Windows preko SSH po ključu bo podrobno razložen v naslednjem članku) in geslo:
PubkeyAuthentication da PasswordAuthentication da
Pristanišče, na katerem sprejema povezave OpenSSH, lahko spremenite v konfiguracijski datoteki sshd_config v direktivi Port..
Po spremembah konfiguracijske datoteke sshd_config morate znova zagnati storitve sshd:vnovični zagon storitve sshd
Povežite se z Windows 10 prek SSH
Zdaj se lahko poskusite povezati s svojim Windows 10 prek odjemalca SSH (uporabljam kiti, lahko pa uporabim vgrajeni odjemalca ssh v sistemu Windows).
Ko se prvič povežete, se pojavi standardna zahteva, da gostitelja dodate na seznam znanih gostiteljev SSH.
Kliknite Da in v oknu, ki se odpre, se prijavite kot uporabnik sistema Windows.
Po uspešni povezavi se ukazni lupini cmd.exe zažene s pozivom.
admin @ win10tst C: \ Uporabniki \ administrator>
V ukazni vrstici lahko izvajate različne ukaze, zaženete skripte in programe.
Raje delam v ukazni vrstici PowerShell. Če želite zagnati tolmač PowerShell, zaženite:
powershell.exe
Če želite spremeniti privzeto lupino v OpenSSH iz cmd.exe v PowerShell, spremenite register s tem ukazom:
Lastnost novega predmeta-Pot "HKLM: \ SOFTWARE \ OpenSSH" -Ime DefaultShell -Value "C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe" -PropertyType String -Force
Ostaja, da znova zaženete povezavo SSH in se prepričate, da se med povezavo uporablja lupina PowerShell (to je označeno s povabilom PS C: \ Uporabniki \ administrator>
).
V seji SSH je bila zagnana konzola PowerShell, v kateri delujejo običajne funkcije: samodejno dokončanje, barvanje modula PSReadLine, zgodovina ukazov itd. Če je trenutni uporabnik član skupine lokalnih skrbnikov, se vsi ukazi v njegovi seji izvajajo s povišanimi pravicami, tudi če je UAC omogočen.