Pripojenie k Windows cez SSH ako v Linuxe

Vždy ma trápi pripojenie k strojom s Windows. Nie, nie som odporcom ani zástancom Microsoftu a ich produktov. Každý produkt existuje kvôli svojej funkcii, ale o tom to nie je.
Pre mňa bolo vždy bolestivé pripojiť sa k serverom s Windows, pretože tieto pripojenia sú buď nastavené cez zložitosti (ahoj WinRM s HTTPS), alebo nefungujú veľmi stabilne (zdravím RDP k virtuálkam za oceánom).

Náhodne som narazil na projekt Win32-OpenSSH, a rozhodol som sa podeliť o skúsenosti s jeho nastavením. Možno niekomu táto nástroj ušetrí veľa nervov.

Pripojenie k Windows cez SSH ako v Linuxe

Možnosti inštalácie:

  1. Ručne
  2. Cez balík Chocolatey
  3. Cez Ansible, napríklad rola jborean93.win_openssh

Ďalej budem hovoriť o prvom bode, pretože ostatné sú celkom jasné.

Chcem zdôrazniť, že tento projekt je zatiaľ v beta fáze, a preto sa neodporúča používať ho v produkcii.

Takže, stiahneme si poslednú verziu, v súčasnosti je to 7.9.0.0p1-beta. Existujú verzie pre 32 aj 64-bitové systémy.

Rozbalíme do C:Program FilesOpenSSH
Povinný bod pre správnu funkciu: práva na zápis v tejto priečinku musia mať len SYSTEM a administratívna skupina.

Nainštalujeme služby skriptom install-sshd.ps1 nachádzajúcim sa v tejto priečinku

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

Povolíme prichádzajúce pripojenia na porte 22:

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

Užitočná poznámka: príkaz New-NetFirewallRule sa používa na Windows Server 2012 a novšie. V starších systémoch (alebo desktopoch) môžete použiť príkaz:

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

Spustíme službu:

net start sshd

Pri spustení sa automaticky vygenerujú hostiteľské kľúče (ak chýbajú) v %programdata%ssh

Automatické spustenie služby pri spustení systému môžeme zapnúť príkazom:

Set-Service sshd -StartupType Automatic

Taktiež môžeme zmeniť predvolenú príkazovú shell (po inštalácii, predvolene — cmd):

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

Užitočná poznámka: Je potrebné uviesť absolútnu cestu.

Čo ďalej?

A ďalej nastavujeme sshd_config, ktorý sa nachádza v C:ProgramDatassh. Napríklad:

PasswordAuthentication no
PubkeyAuthentication yes

A vytvoríme v používateľskej priečinku adresár .ssh, a v ňom súbor authorized_keys. Tam zapíšeme verejné kľúče.

Dôležité upozornenie: práva na zápis do tohto súboru by mal mať iba používateľ, ktorého adresár súbor obsahuje.

Ale ak máte s týmto problémy, vždy je možné vypnúť overovanie práv v konfigurácii:

StrictModes no

Mimochodom, v C:Program FilesOpenSSH ležia 2 skripty (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), ktoré by mali, ale nemusia opravovať práva, vrátane authorized_keys, ale akosi to neopravujú.

Nezabúdajte reštartovať službu sshd po zmene na aplikovanie zmien.

ru-mbp-666:infrastructure$ ssh Administrator@192.168.1.10 -i ~/ .ssh/id_rsa
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. Všetky práva vyhradené.

PS C:UsersAdministrator> Get-Host


Názov             : ConsoleHost
Verzia           : 5.1.14393.2791
InstanceId       : 653210bd-6f58-445e-80a0-66f66666f6f6
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
Aktuálna kultúra : en-US
Aktuálna UI kultúra : en-US
Súkromné údaje   : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled   : True
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace

PS C:UsersAdministrator>

Subjektívne výhody/nevýhody.

Výhody:

  • Štandardný prístup k pripojeniu k serverom.
    Keď je niekoľko Windows strojov, je veľmi nepríjemné, keď:
    Takže sem sa pripájame cez ssh, a tu RDP,
    a celkovo best-practice s bastionmi, najprv ssh-tunnel, a cez neho RDP.
  • Jednoduchosť nastavenia
    Považujem to za jasné.
  • Rýchlosť pripojenia a práce s vzdialeným strojom
    Bez grafického prostredia, šetrí ako zdroje servera, tak aj množstvo prenášaných údajov.

Nevýhody:

  • Úplne nenahrádza RDP.
    Nie všetko sa dá urobiť z konzoly, žiaľ. Mám na mysli situácie, keď je potrebný GUI.

Materiály použité v článku:
Odkaz na samotný projekt
Varianty inštalácie sú bezostyšne skopírované z Ansible docs.

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster