Savienojuma izveide ar Windows, izmantojot SSH, piemēram, Linux

Mani vienmēr ir sarūgtinājusi savienošanās ar Windows iekārtām. Nē, es neesmu ne Microsoft un viņu produktu pretinieks, ne atbalstītājs. Katrs produkts pastāv savam mērķim, bet tas nav par to.
Man vienmēr ir bijis nežēlīgi sāpīgi pieslēgties Windows serveriem, jo ​​šie savienojumi ir vai nu konfigurēti caur vienu vietu (sveicināti WinRM ar HTTPS), vai arī nedarbojas ļoti stabili (sveiki RDP uz virtuālajām mašīnām ārzemēs).

Tāpēc nejauši saskārusies ar projektu Win32-OpenSSH, es nolēmu dalīties savā iestatīšanas pieredzē. Varbūt šis rīks kādam ietaupīs daudz nervu.

Savienojuma izveide ar Windows, izmantojot SSH, piemēram, Linux

Uzstādīšanas iespējas:

  1. ar rokām
  2. Caur paka Chocolatey
  3. Via Ansible, piemēram, lomu jborean93.win_openssh

Tālāk es runāšu par pirmo punktu, jo ar pārējo viss ir vairāk vai mazāk skaidrs.

Vēlos atzīmēt, ka šis projekts vēl ir beta stadijā, tāpēc nav ieteicams to izmantot ražošanā.

Tātad, lejupielādējiet jaunāko versiju, šobrīd tā ir 7.9.0.0p1-beta. Ir versijas gan 32, gan 64 bitu sistēmām.

Izpakojiet C: Program FilesOpenSSH
Obligāts punkts pareizai darbībai: tikai SISTĒMA un administratoru grupa.

Pakalpojumu instalēšana, izmantojot skriptu install-sshd.ps1 atrodas šajā direktorijā

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

Atļaut ienākošos savienojumus 22. portā:

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

Precizējums: sīklietotne New-NetFirewallRule izmanto operētājsistēmā Windows Server 2012 un jaunākās versijās. Vecākajās sistēmās (vai darbvirsmā) varat izmantot komandu:

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

Sāksim pakalpojumu:

net start sshd

Startēšanas laikā resursdatora atslēgas tiks automātiski ģenerētas (ja tās nav). %programdata%ssh

Mēs varam iespējot pakalpojuma automātisko palaišanu, kad sistēma startē ar komandu:

Set-Service sshd -StartupType Automatic

Varat arī mainīt noklusējuma komandas apvalku (pēc instalēšanas noklusējuma ir cmd):

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

Precizējums: ir jānorāda absolūtais ceļš.

Ko tālāk?

Un tad mēs to uzstādījām sshd_config, kurā ievietosim C: Programmas dati. Piemēram:

PasswordAuthentication no
PubkeyAuthentication yes

Un izveidojiet direktoriju lietotāja mapē .ssh, un tajā esošais fails Authorized_keys. Mēs tur pierakstām publiskās atslēgas.

Svarīgs precizējums: tikai lietotājam, kura direktorijā atrodas fails, ir jābūt tiesībām rakstīt šajā failā.

Bet, ja jums ir problēmas ar to, vienmēr varat izslēgt tiesību pārbaudi konfigurācijā:

StrictModes no

Starp citu, iekšā C: Program FilesOpenSSH ir 2 skripti (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), kam vajadzētu, bet nav pienākums noteikt tiesības, tostarp ar Authorized_keys, bet kādu iemeslu dēļ viņi nereģistrējas.

Neaizmirstiet restartēt pakalpojumu sshd pēc tam, lai piemērotu izmaiņas.

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>

Subjektīvi plusi/mīnusi.

Plusi:

  • Standarta pieeja savienojuma izveidei ar serveriem.
    Ja ir maz Windows iekārtu, tas ir ļoti neērti, ja:
    Tātad, šeit mēs ejam caur ssh, un šeit mēs izmantojam rdp,
    un vispār labākā prakse ar bastioniem ir vispirms ssh tunelis un LAP pa to.
  • Viegli uzstādīt
    Es domāju, ka tas ir acīmredzami.
  • Savienojuma ātrums un darbs ar attālo iekārtu
    Nav grafiskā apvalka, ietaupot gan servera resursus, gan pārsūtīto datu apjomu.

Mīnusi:

  • Neaizvieto pilnībā LAP.
    Diemžēl ne visu var izdarīt no konsoles. Es domāju situācijas, kurās ir nepieciešama GUI.

Rakstā izmantotie materiāli:
Saite uz pašu projektu
Instalācijas iespējas ir nekaunīgi kopētas no Iespējamie dokumenti.

Avots: www.habr.com

Pievieno komentāru