Povezivanje na Windows putem SSH-a kao što je Linux

Uvek sam bio frustriran povezivanjem sa Windows mašinama. Ne, nisam ni protivnik ni pristalica Microsofta i njihovih proizvoda. Svaki proizvod postoji za svoju svrhu, ali se ne radi o tome.
Oduvijek mi je bilo strašno bolno povezivanje na Windows servere, jer su te veze ili konfigurisane preko jednog mjesta (zdravo WinRM sa HTTPS-om) ili ne rade baš stabilno (pozdrav RDP virtuelnim mašinama u inostranstvu).

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

Povezivanje na Windows putem SSH-a kao što je Linux

Opcije instalacije:

  1. Ručno
  2. Kroz пакет Chocolatey
  3. Preko Ansiblea, na primjer uloga jborean93.win_openssh

Dalje ću govoriti o prvoj tački, pošto je sa ostatkom sve manje-više jasno.

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

Dakle, preuzmite najnovije izdanje, u ovom trenutku 7.9.0.0p1-beta. Postoje verzije za 32-bitne i 64-bitne sisteme.

Raspakujte se C: Program FilesOpenSSH
Obavezna tačka za ispravan rad: samo SYSTEM i administratorsku grupu.

Instaliranje servisa pomoću skripte install-sshd.ps1 nalazi u ovom imeniku

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

Dozvolite dolazne veze na portu 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 Server 2012 i novijim verzijama. U najstarijim sistemima (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, glavni ključevi će se automatski generirati (ako nedostaju). %programdata%ssh

Možemo omogućiti automatsko pokretanje servisa kada se sistem pokrene naredbom:

Set-Service sshd -StartupType Automatic

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

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

Pojašnjenje: Morate navesti apsolutnu putanju.

Što je sljedeće?

I onda smo to postavili sshd_config, u koju ćemo postaviti C: Programski podaci. Na primjer:

PasswordAuthentication no
PubkeyAuthentication yes

I kreirajte direktorij u korisničkom folderu .ssh, a u njemu i fajl ovlašćeni_kejevi. Tu zapisujemo javne ključeve.

Važno pojašnjenje: samo korisnik u čijem se direktoriju se 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 (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), koji bi trebali, ali nisu obavezni da utvrde prava, uključujući sa ovlašćeni_kejevi, ali se iz nekog razloga ne registruju.

Ne zaboravite ponovo pokrenuti uslugu ssh nakon da biste primijenili promjene.

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 sa serverima.
    Kada ima malo Windows mašina, veoma je nezgodno kada:
    Dakle, idemo preko ssh-a, a ovdje koristimo rdp,
    i općenito, najbolja praksa sa bastionima je prvo ssh tunel, pa RDP kroz njega.
  • Jednostavan za postavljanje
    Mislim da je ovo očigledno.
  • Brzina veze i rad sa udaljenom mašinom
    Ne postoji grafička ljuska koja štedi i resurse servera i količinu prenetih podataka.

Cons:

  • Ne zamjenjuje u potpunosti RDP.
    Ne može se sve uraditi sa konzole, nažalost. Mislim na situacije u kojima je potreban GUI.

Materijali korišteni u članku:
Link do samog projekta
Opcije instalacije su besramno kopirane Ansible docs.

izvor: www.habr.com

Dodajte komentar