Windowsi ühendamine SSH kaudu nagu Linuxis

Mulle on alati murettekitav olnud ühendamine Windows masinatega. Ei, ma ei ole Microsofti ja nende toodete vastane ega toetaja. Iga toode eksisteerib oma eesmärgi nimel, kuid see pole teema.
Minu jaoks on alati valus olnud ühenduda Windows serveritega, sest need ühendused kas seadistatakse keeruliselt (tervist WinRM HTTPS-iga) või ei toimi eriti stabiilselt (tere tulemast RDP virtuaalmasinatele ookeani taga).

Seetõttu, kui komistasin projekti peale Win32-OpenSSH, otsustasin jagada seadistamise kogemust. Võib-olla aitab see tööriist kellelgi säästa närve.

Windowsi ühendamine SSH kaudu nagu Linuxis

Paigaldamise võimalused:

  1. Käsitsi
  2. Waylandi protokollide kaudu pakett Chocolatey
  3. Näiteks Ansible'i kaudu, roll jborean93.win_openssh

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

Tähtis märkida, et see projekt on hetkel beetastaadiumis, seega ei soovitata seda kasutada tootmises.

Nii et laadime alla viimane versioon, praegu on see 7.9.0.0p1-beta. On olemas versioonid nii 32- kui 64-bitiste süsteemide jaoks.

Pakkime lahti C:Program FilesOpenSSH
Tähtis hetk korraliku töö tagamiseks: selle kausta kirjutamisõigus peab olema ainult SYSTEM ja haldurigruppidel.

Paigaldame teenused skriptiga install-sshd.ps1 mille leidmine on selles kaustas

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

Lubame sissetulevad ühendused 22. pordile:

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 uuemates. Vanemates süsteemides (kas desktopidel) 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 ei ole) kaustas %programdata%ssh

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

Set-Service sshd -StartupType Automatic

Samuti on võimalik muuta vaikimisi käsurida (pärast paigaldust, vaikimisi — cmd):

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

Selgitus: Absoluutne tee on vajalik.

Mis edasi?

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

PasswordAuthentication no
PubkeyAuthentication yes

Ja loome kasutaja kaustas kausta .ssh, ja seal faili authorized_keys. Kirjutame sinna avalikud võtmed.

Oluline märkida: selle faili kirjutamisõigus peab olema ainult selle kasutaja käes, kelle kaustas see fail asub.

Aga kui teil on sellega probleeme, saate alati konfiguratsioonis õiguste kontrolli välja lülitada:

StrictModes no

Muide, C:Program FilesOpenSSH on olemas kaks skripti (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), mis peaksid, kuid ei pea, õigusi parandama, sealhulgas ka 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


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>

Subjektiivsed plussid/miinused.

Plussid:

  • Standardne lähenemine serverite ühendamiseks.
    Kui on mõni Windows masin, on väga ebamugav, kui:
    Nii et siia me ühendame ssh, aga sinna rdp,
    ja üldiselt parim praktika bastionitega, esmalt ssh tunnel ja siis RDP selle kaudu.
  • Seadistamise lihtsus
    Arvan, et see on ilmne.
  • Ühenduse ja kaugmasinaga töötamise kiirus
    Graafiline liides puudub, säästetakse nii serveri ressursse kui ka edastatavate andmete hulka.

Miinused:

  • Ei asenda RDP täielikult.
    Kõike ei saa konsoolist teha, kahjuks. Pean silmas olukordi, kus on vajalik GUI.

Artiklis kasutatud materjalid:
Link projekti juurde
Installeerimise variandid on lubamatult kopeeritud Ansible docs.

Allikas: habr.com

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster