openssh

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.