Spajanje na Windows putem SSH-a poput Linuxa

Uvijek sam bio frustriran povezivanjem na Windows strojeve. Ne, nisam ni protivnik ni pobornik Microsofta i njegovih proizvoda. Svaki proizvod postoji za svoju svrhu, ali nije o tome riječ.
Uvijek mi je bilo nesnosno bolno spajati se na Windows poslužitelje, jer su te veze ili konfigurirane na jednom mjestu (pozdrav WinRM s HTTPS-om) ili ne rade baš stabilno (pozdrav RDP virtualnim strojevima u inozemstvu).

Stoga, slučajno naišavši na projekt Win32-OpenSSH, odlučio sam podijeliti svoje iskustvo postavljanja. Možda će ovaj alat nekome uštedjeti mnogo živaca.

Spajanje na Windows putem SSH-a poput Linuxa

Mogućnosti instalacije:

  1. ručno
  2. Kroz paket chocolatey
  3. Via Ansible, na primjer uloga jborean93.win_openssh

Zatim ću govoriti o prvoj točki, jer je s ostatkom sve manje-više jasno.

Napominjem da je ovaj projekt još uvijek u beta fazi, pa se ne preporučuje njegovo korištenje u produkciji.

Dakle, preuzmite najnovije izdanje, trenutno jest 7.9.0.0p1-beta. Postoje verzije za 32 i 64 bitne sustave.

Raspakirajte se C:Program FilesOpenSSH
Obavezna točka za ispravan rad: samo SUSTAV i administratorsku grupu.

Instaliranje usluga pomoću skripte instalacija-sshd.ps1 koji se nalazi u ovom imeniku

powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1

Dopusti dolazne veze na priključku 22:

New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

Pojašnjenje: applet New-NetFirewallRule koristi se na Windows Serveru 2012 i novijim. U najstarijim sustavima (ili desktopu) možete koristiti naredbu:

netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22

Pokrenimo uslugu:

net start sshd

Prilikom pokretanja, ključevi hosta bit će automatski generirani (ako nedostaju). %programski podaci%ssh

Automatsko pokretanje usluge prilikom pokretanja sustava možemo omogućiti naredbom:

Set-Service sshd -StartupType Automatic

Također možete promijeniti zadanu naredbenu ljusku (nakon instalacije, zadana je cmd):

New-ItemProperty -Path "HKLM:SOFTWAREOpenSSH" -Name DefaultShell -Value "C:WindowsSystem32WindowsPowerShellv1.0powershell.exe" -PropertyType String -Force

Pojašnjenje: morate navesti apsolutni put.

Što je sljedeće?

I onda smo to postavili sshd_config, koje ćemo smjestiti u C: Podaci o programu, Na primjer:

PasswordAuthentication no
PubkeyAuthentication yes

I stvorite direktorij u korisničkoj mapi .ssh, au njemu datoteku odobreni_ključevi. Tamo zapisujemo javne ključeve.

Važno pojašnjenje: samo korisnik u čijem se direktoriju nalazi datoteka treba imati pravo pisanja u ovu datoteku.

Ali ako imate problema s ovim, uvijek možete isključiti provjeru prava u konfiguraciji:

StrictModes no

Usput, u C:Program FilesOpenSSH postoje 2 skripte (Popravi HostFilePermissions.ps1, FixUserFilePermissions.ps1), koji bi trebali, ali nisu obvezni, utvrditi prava, uključujući s odobreni_ključevi, ali se iz nekog razloga ne registriraju.

Ne zaboravite ponovno pokrenuti uslugu sshd nakon primjene promjena.

ru-mbp-666:infrastructure$ ssh [email protected] -i ~/.ssh/id_rsa
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.

PS C:UsersAdministrator> Get-Host


Name             : ConsoleHost
Version          : 5.1.14393.2791
InstanceId       : 653210bd-6f58-445e-80a0-66f66666f6f6
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : en-US
CurrentUICulture : en-US
PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled  : True
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace

PS C:UsersAdministrator>

Subjektivne prednosti/protiv.

Pros:

  • Standardni pristup povezivanju s poslužiteljima.
    Kada ima malo Windows strojeva, vrlo je nezgodno kada:
    Dakle, ovdje idemo putem ssh-a, a ovdje koristimo rdp,
    i općenito najbolja praksa s bastionima je prvo ssh tunel, a RDP kroz njega.
  • Jednostavan za postavljanje
    Mislim da je ovo očito.
  • Brzina povezivanja i rad s udaljenim strojem
    Nema grafičke ljuske, čime se štede resursi poslužitelja i količina prenesenih podataka.

Cons:

  • Ne zamjenjuje u potpunosti RDP.
    Ne može se sve raditi s konzole, nažalost. Mislim na situacije u kojima je potrebno GUI.

Materijali korišteni u članku:
Link na sam projekt
Mogućnosti instalacije besramno su prepisane Ansible docs.

Izvor: www.habr.com

Dodajte komentar