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.
Pojašnjenje: applet New-NetFirewallRule koristi se na Windows Server 2012 i novijim verzijama. U najstarijim sistemima (ili desktopu) možete koristiti naredbu:
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.