Ühendamine Windowsi läbi SSH nagu Linuxis

Mind alati oli Windows masinatega ühenduse loomine mulle murettekitav. Ei, ma ei ole Microsofti ja nende toodete vastane ega toetaja. Iga toode eksisteerib oma eesmärgi nimel, kuid see ei ole teema.
Mulle on alati olnud piinav ühenduda Windows serveritega, sest need ühendused kas seadistatakse keeruliselt (tere, WinRM HTTPS) või töötavad need ebastabiilselt (teretulemast RDP virtuaalmasinatele üle ookeani).

Seetõttu, juhuslikult avastades projekti Win32-OpenSSH, otsustasin jagada oma seadistamise kogemust. Võib-olla säästab see tööriist kellegi närve.

Ühendamine Windowsi läbi SSH nagu Linuxis

Paigaldusvõimalused:

  1. Käsitsi
  2. Kasutades pakett Chocolatey
  3. Kasutades Ansible'i, näiteks rolli jborean93.win_openssh

Edasi räägin esimesest punktist, kuna ülejäänud on enam-vähem arusaadavad.

Tähtis on märkida, et see projekt on veel beetafaasis, seetõttu ei soovitata seda productionis kasutada.

Nii et, laeme alla viimase versiooni, sel hetkel on see 7.9.0.0p1-beta. On olemas versioonid nii 32- kui ka 64-bitistele süsteemidele.

Pakkime lahti C:Program FilesOpenSSH
Kohustuslik punkt korrektselt toimimiseks: kirjutamisõigused selles kataloogis peavad olema ainult SYSTEM ja administraatori grupil.

Seame teenused skripti abil install-sshd.ps1 mis asub antud kaustas

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

Lubame sissetulevaid ühendusi 22. sadamasse:

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

Selgitus: applet New-NetFirewallRule kasutatakse Windows Server 2012 ja uuemate versioonide puhul. Vanemates süsteemides (või töölaual) võib kasutada käsku:

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

Käivitame teenuse:

net start sshd

Käivitamisel genereeritakse automaatselt hosti võtmed (kui neid pole) kausta %programdata%ssh

Teenuse automaatne käivitamine süsteemi käivitamisel saab lubada käsuga:

Set-Service sshd -StartupType Automatic

Samuti võib vahetada vaikimisi käsurea tõlgik (pärast installimist, vaikimisi — cmd):

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

Selgitus: tuleb määrata absoluutne tee.

Mis edasi?

Ja edasi seadistame sshd_config, mis asub kaustas C:ProgramDatassh. Näiteks:

PasswordAuthentication no
PubkeyAuthentication yes

Ja loome kasutaja kausta katalooge .ssh, ja sinna faili authorized_keys. Sinna kirjutame avalikud võtmed.

Oluline märkus: kirjutamisõigus sellele failile peab olema ainult kasutajal, kelle kaustas see fail asub.

Kuid kui teil on sellega probleeme, siis on alati võimalik nõuded seadetes välja lülitada:

StrictModes no

Muide, kaustas C:Program FilesOpenSSH on 2 skripti (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), mis peaksid, kuid ei pruugi õigusi parandada, sealhulgas authorized_keys, kuid mingil põhjusel ei paranda.

Ärge unustage teenust taaskäivitada sshd muudatuste rakendamiseks.

ru-mbp-666:infrastructure$ ssh Administrator@192.168.1.10 -i ~/.ssh/id_rsa
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. Kõik õigused kaitstud.

PS C:UsersAdministrator> Get-Host


Nimi             : ConsoleHost
Versioon          : 5.1.14393.2791
InstanceId       : 653210bd-6f58-445e-80a0-66f66666f6f6
Kasutajaliides   : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentlyCulture   : en-US
CurrentlyUICulture : en-US
PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled  : True
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace

PS C:UsersAdministrator>

Subjektiivsed plussid/miinused.

Plussid:

  • Standardne lähenemine serveritele ühendamiseks.
    Kui on mõned Windowsi masinad, on väga ebamugav, kui:
    Nii, siia me pääseme ssh kaudu, aga siin rdp,
    ja üleüldiselt on parim tava bastionitega, esmalt ssh-tunnel ja selle kaudu RDP.
  • Lihtne seadistamine
    Arvan, et see on ilmne.
  • Ühenduse kiirus ja kaugmasina töö
    Graafilist liidest ei ole, säästetakse nii serveri ressursse kui ka edastatavaid andmeid.

Miinused:

  • Ei asenda RDP täielikult.
    Kahjuks ei saa kõike konsoolist teha. Ma pean silmas olukordi, kus on vajalik GUI.

Artiklis kasutatud materjalid:
Link projekti juurde
Installeerimise variandid on jälgitud Ansible docs.

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster