Man vienmēr ir šķitis, ka savienojums ar Windows datoriem ir apgrūtinošs. Nē, es neesmu pret Microsoft un viņu produktiem. Katrs produkts pastāv savam mērķim, bet runa nav par to.
Man vienmēr bija mokoši grūti pieslēgties Windows serveriem, jo šie savienojumi vai nu tiek iestatīti caur neērtām metodēm (sveiks, WinRM ar HTTPS), vai arī nav stabils (sveiks, RDP uz virtuālajiem serveriem okeāna otrā pusē).
Tāpēc, nejauši uzdūroties projektam , es nolēmu dalīties pieredzē par konfigurāciju. Varbūt kāds šo rīku izmantos, lai ietaupītu daudz nervu.

Instalācijas varianti:
- Caur Chocolatey
- Caur Ansible, piemēram, lomu
Tālāk es runāšu par pirmo punktu, jo ar pārējiem un tāpat viss ir samērā skaidrs.
Atzīšos, ka šis projekts pagaidām ir beta stadijā, tāpēc to neiesaka izmantot ražošanā.
Tātad, lejupielādējam jaunāko izlaidumu, šobrīd tas ir . Ir versijas gan 32, gan 64 bitu sistēmām.
Izpakojam to C:Program FilesOpenSSH
Obligāts moments pareizai darbībai: ierakstīšanas tiesībām šajā direktorijā jābūt tikai SYSTEM un administrācijas grupai.
Instalējam pakalpojumus ar skriptu install-sshd.ps1 atrodas šajā direktorijā
powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1Atļaujam ienākošus savienojumus uz 22. portu:
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22Precizējums: aplets New-NetFirewallRule tiek izmantots Windows Server 2012 un jaunākās versijās. Vecākās sistēmās (vai desktop) varat izmantot komandu:
netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22
Palaižam servisu:
net start sshdStartējot, tiks automātiski ģenerēti hosta atslēgas (ja tās nav) sadaļā %programdata%ssh
Automātisko pakalpojuma startu pie sistēmas palaišanas varam aktivizēt ar komandu:
Set-Service sshd -StartupType AutomaticTāpat var mainīt noklusējuma komandu apvalku (pēc instalēšanas, noklusējuma ir cmd):
New-ItemProperty -Path "HKLM:SOFTWAREOpenSSH" -Name DefaultShell -Value "C:WindowsSystem32WindowsPowerShellv1.0powershell.exe" -PropertyType String -ForcePrecizējums: jānorāda absolūta ceļa.
Kas tālāk?
Tālāk konfigurējam sshd_config, kas atrodas C:ProgramDatassh. Piemēram:
PasswordAuthentication no
PubkeyAuthentication yesUn izveidojam lietotāja mapē direktoriju .ssh, bet tajā failu authorized_keys. Tajā ierakstām publiskās atslēgas.
Svarīgs paskaidrojums: rakstīšanas tiesības šajā failā var iegūt tikai lietotājs, kura direktorijā atrodas fails.
Tomēr, ja jums ir problēmas ar to, vienmēr varat izslēgt tiesību pārbaudi konfigurācijā:
StrictModes nēStarpcitu, C:Program FilesOpenSSH atrodas 2 skripti (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), kuriem vajadzētu, bet nav obligāti, labot tiesības, tostarp arī ar authorized_keys, bet kāpēc kaut kādā ziņā nemaz neatlabo.
Nepieciešams neaizmirst pārlādēt pakalpojumu sshd. pēc tam, lai realizētu izmaiņas.
ru-mbp-666:infrastructure$ ssh Administrator@192.168.1.10 -i ~/ .ssh/id_rsa
Windows PowerShell
Autortiesības (C) 2016 Microsoft Corporation. Visas tiesības rezervētas.
PS C:UsersAdministrator> Get-Host
Nosaukums : ConsoleHost
Versija : 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 : Patiesi
IsRunspacePushed : Ne
Runspace : System.Management.Automation.Runspaces.LocalRunspace
PS C:UsersAdministrator>Subjektīvie plusi/mīnusi.
Priekšrocības:
- Standarta pieeja savienojumam ar serveriem.
Kad ir nedaudz Windows mašīnu, ļoti neērti, kad:
Tā, šeit mēs izpildām caur ssh, bet šeit rdp,
un vispār best-practice ar bastioniem, vispirms ssh-tunelis, un caur to RDP. - Vienkāršība konfigurācijā
Uzskatu, ka tas ir acīmredzami. - Savienojuma ātrums un darbs ar attālinātu mašīnu
Nav grafiskās saskares, taupās gan servera resursi, gan pārsūtīto datu apjoms.
Mīnusi:
- Pilnībā neaizvieto RDP.
Ne visu var izdarīt no konsoles, diemžēl. Es domāju situācijas, kad nepieciešama GUI.
Rakstā izmantotie materiāli:
Uzstādīšanas varianti bezkaunīgi aizņemti no .
Avots: habr.com
