openssh

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.