Windows-era SSH bidez konektatzea Linux bezala

Windows-eko makinetara konektatzean beti etsita egon naiz. Ez, ez naiz Microsoften eta haien produktuen aurkari, ezta aldekoa ere. Produktu bakoitza bere helbururako existitzen da, baina ez da hori.
Windows zerbitzarietara konektatzea beti izan zait izugarri mingarria, konexio hauek leku bakar baten bidez konfiguratuta daudelako (kaixo WinRM HTTPSrekin) edo ez dutelako oso egonkor funtzionatzen (kaixo RDP atzerriko makina birtualei).

Horregatik, ustekabean proiektua topatu izana Win32-OpenSSH, nire konfigurazio esperientzia partekatzea erabaki nuen. Beharbada, tresna honek nerbio asko aurreztuko ditu norbaiti.

Windows-era SSH bidez konektatzea Linux bezala

Instalazio aukerak:

  1. eskuz
  2. Bidez pakete chocolatey
  3. Ansible bidez, rola adibidez jborean93.win_openssh

Jarraian, lehen puntuaz hitz egingo dut, gainontzekoekin dena gutxi gorabehera argi baitago.

Kontuan izan nahiko nuke proiektu hau beta fasean dagoela oraindik, beraz, ez da gomendagarria ekoizpenean erabiltzea.

Beraz, deskargatu azken bertsioa, une honetan 7.9.0.0p1-beta. 32 eta 64 biteko sistemetarako bertsioak daude.

Deskargatu C: Programa-fitxategiakOpenSSH
Funtzionamendu zuzena izateko derrigorrezko puntua: soilik SISTEMA eta administratzaile taldea.

Zerbitzuak instalatzea script baten bidez install-sshd.ps1 direktorio honetan kokatzen da

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

Baimendu sarrerako konexioak 22 atakan:

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

Argipena: applet New-NetFirewall Rule Windows Server 2012 eta ondorengoetan erabiltzen da. Sistema zaharrenetan (edo mahaigainean) komandoa erabil dezakezu:

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

Hasi gaitezen zerbitzua:

net start sshd

Abiaraztean, ostalariaren gakoak automatikoki sortuko dira (falta badaude). %programdata%ssh

Zerbitzuaren abiarazte automatikoa gaitu dezakegu sistema komandoarekin hasten denean:

Set-Service sshd -StartupType Automatic

Komando-shell lehenetsia ere alda dezakezu (instalatu ondoren, lehenetsia da cmd):

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

Argipena: bide absolutua zehaztu behar duzu.

Zer da hurrengoa?

Eta gero ezarri genuen sshd_config, kokatuko duguna C: Programaren datuak. Adibidez:

PasswordAuthentication no
PubkeyAuthentication yes

Eta sortu direktorioa erabiltzailearen karpetan .ssh, eta bertan fitxategia baimendutako_gakoak. Bertan gako publikoak idazten ditugu.

Azalpen garrantzitsua: fitxategia bere direktorioan dagoen erabiltzaileak soilik izan beharko luke fitxategi honetara idazteko eskubidea.

Baina honekin arazoak badituzu, beti desaktibatu dezakezu eskubideen egiaztapena konfigurazioan:

StrictModes no

Bide batez, barruan C: Programa-fitxategiakOpenSSH 2 gidoi daude (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), eskubideak finkatzeko behartuta ez daudenak, besteak beste baimendutako_gakoak, baina arrazoiren batengatik ez dute izena ematen.

Ez ahaztu zerbitzua berrabiaraztea sshd aldaketak aplikatu ondoren.

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>

Alde/kontrako subjektiboak.

Pros:

  • Zerbitzarietara konektatzeko ikuspegi estandarra.
    Windows makina gutxi daudenean, oso deserosoa da:
    Beraz, hemen ssh bidez goaz, eta hemen rdp erabiltzen dugu,
    eta, oro har, bastioiekin praktikarik onena lehenik ssh tunel bat da, eta RDP horren bidez.
  • Konfiguratzeko erraztasuna
    Hau agerikoa dela uste dut.
  • Konexioaren abiadura eta urruneko makina batekin lan egin
    Ez dago shell grafikorik, zerbitzariaren baliabideak eta transmititutako datu kopurua aurrezten du.

Cons:

  • Ez du RDP guztiz ordezkatzen.
    Kontsolatik ezin da dena egin, ai. GUI bat behar den egoerak esan nahi dut.

Artikuluan erabilitako materialak:
Proiektuari berari esteka
Instalazio aukerak lotsagabe kopiatzen dira Ansible doks.

Iturria: www.habr.com

Gehitu iruzkin berria