Întotdeauna m-a încercat o neliniște când venea vorba de conectarea la mașinile Windows. Nu, nu sunt împotriva Microsoft sau a produselor lor. Fiecare produs are scopul său, dar asta nu este subiectul de față.
Întotdeauna mi-a fost agonizant să mă conectez la serverele cu Windows, deoarece aceste conexiuni fie sunt configurate într-un mod complicat (salut, WinRM cu HTTPS), fie nu funcționează foarte stabil (Bună, RDP la mașinile virtuale de peste ocean).
Așadar, întâmplător am dat peste proiectul , am decis să împărtășesc experiența de configurare. Poate că această unealtă va economisi multă nervozitate cuiva.

Opțiuni de instalare:
- Prin Chocolatey
- Prin Ansible, de exemplu, rolul
În continuare, voi vorbi despre primul punct, deoarece celelalte sunt deja mai mult sau mai puțin clare.
Trebuie să menționez că acest proiect se află încă în stadiul beta, așadar nu este recomandat pentru utilizarea în producție.
Așadar, descărcăm ultima versiune, care în prezent este . Există versiuni atât pentru sisteme de 32 de biți, cât și pentru cele de 64 de biți.
Dezarhivăm în C:Program FilesOpenSSH
Un aspect obligatoriu pentru funcționarea corectă: permisiunile de scriere în acest director trebuie să fie acordate doar pentru SYSTEM și pentru grupul de administratori.
Instalăm serviciile cu scriptul install-sshd.ps1 aflat în acest director
powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1Permitem conexiunile de intrare pe portul 22:
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22Clarificare: appletul New-NetFirewallRule este utilizat pe Windows Server 2012 și versiuni mai recente. În sistemele mai vechi (sau desktop) se poate folosi comanda:
netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22
Pornim serviciul:
net start sshdLa pornire, vor fi generate automat cheile gazdă (dacă nu există) în %programdata%ssh
Autostartul serviciului la pornirea sistemului poate fi activat cu comanda:
Set-Service sshd -StartupType AutomaticDe asemenea, se poate schimba shell-ul implicit (după instalare, implicit este cmd):
New-ItemProperty -Path "HKLM:SOFTWAREOpenSSH" -Name DefaultShell -Value "C:WindowsSystem32WindowsPowerShellv1.0powershell.exe" -PropertyType String -ForceClarificare: trebuie specificat calea absolută.
Ce urmează?
Și apoi configurăm sshd_config, care se află în C:ProgramDatassh. De exemplu:
PasswordAuthentication no
PubkeyAuthentication yesȘi creăm în directorul utilizatorului directorul .ssh, iar în el, fișierul authorized_keys. Acolo scriem cheile publice.
O precizare importantă: drepturile de scriere în acest fișier trebuie să fie deținute doar de utilizatorul din directorul căruia se află fișierul.
Dar dacă aveți probleme cu asta, întotdeauna puteți dezactiva verificarea drepturilor în configurație:
StrictModes noApropo, în C:Program FilesOpenSSH se află 2 scripturi (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), care ar trebui, dar nu sunt obligate să rezolve drepturile, inclusiv cu authorized_keys, dar dintr-un motiv oarecare nu le rezolvă.
Nu uitați să reporniți serviciul sshd după aplicarea modificărilor.
ru-mbp-666:infrastructure$ ssh Administrator@192.168.1.10 -i ~/.ssh/id_rsa
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. Toate drepturile rezervate.
PS C:UsersAdministrator> Get-Host
Nume : ConsoleHost
Versiune : 5.1.14393.2791
ID Instanță : 653210bd-6f58-445e-80a0-66f66666f6f6
UI : System.Management.Automation.Internal.Host.InternalHostUserInterface
CulturaCurentă : en-US
CulturaUICurentă : en-US
DatePrivate : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerActivat : True
IsRunspacePushed : False
Runspace : System.Management.Automation.Runspaces.LocalRunspace
PS C:UsersAdministrator>Avantaje și dezavantaje subiective.
Pro:
- Abordarea standard de conectare la servere.
Când ai câteva mașini Windows, este foarte incomod când:
Așadar, aici ne conectăm prin ssh, iar acolo rdp,
și, în general, cea mai bună practică cu bastioanele, mai întâi ssh-tunel, și prin el RDP. - Ușurința de configurare
Consider că este evident. - Viteza de conectare și lucrul cu mașina remote
Nu există interfață grafică, economisind atât resursele serverului, cât și cantitatea de date transferate.
Dezavantaje:
- Nu înlocuiește complet RDP.
Nu totul poate fi realizat din consolă, din păcate. Mă refer la situațiile când este necesar un GUI.
Materialele utilizate în articol:
Opțiunile de instalare au fost furate fără rușine de la .
Sursa: habr.com
