Savienošana ar Windows caur SSH kā Linux

Man vienmēr ir šķitis, ka savienojums ar Windows datoriem ir apgrūtinošs. Nē, es neesmu pret Microsoft un viņu produktiem. Katrs produkts pastāv savam mērķim, bet runa nav par to.
Man vienmēr bija mokoši grūti pieslēgties Windows serveriem, jo šie savienojumi vai nu tiek iestatīti caur neērtām metodēm (sveiks, WinRM ar HTTPS), vai arī nav stabils (sveiks, RDP uz virtuālajiem serveriem okeāna otrā pusē).

Tāpēc, nejauši uzdūroties projektam Win32-OpenSSH, es nolēmu dalīties pieredzē par konfigurāciju. Varbūt kāds šo rīku izmantos, lai ietaupītu daudz nervu.

Savienošana ar Windows caur SSH kā Linux

Instalācijas varianti:

  1. Rokasgrāmata
  2. Caur pakotne Chocolatey
  3. Caur Ansible, piemēram, lomu jborean93.win_openssh

Tālāk es runāšu par pirmo punktu, jo ar pārējiem un tāpat viss ir samērā skaidrs.

Atzīšos, ka šis projekts pagaidām ir beta stadijā, tāpēc to neiesaka izmantot ražošanā.

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

Izpakojam to C:Program FilesOpenSSH
Obligāts moments pareizai darbībai: ierakstīšanas tiesībām šajā direktorijā jābūt tikai SYSTEM un administrācijas grupai.

Instalējam pakalpojumus ar skriptu install-sshd.ps1 atrodas šajā direktorijā

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

Atļaujam ienākošus savienojumus uz 22. portu:

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

Precizējums: aplets New-NetFirewallRule tiek izmantots Windows Server 2012 un jaunākās versijās. Vecākās sistēmās (vai desktop) varat izmantot komandu:

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

Palaižam servisu:

net start sshd

Startējot, tiks automātiski ģenerēti hosta atslēgas (ja tās nav) sadaļā %programdata%ssh

Automātisko pakalpojuma startu pie sistēmas palaišanas varam aktivizēt ar komandu:

Set-Service sshd -StartupType Automatic

Tāpat var mainīt noklusējuma komandu 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: jānorāda absolūta ceļa.

Kas tālāk?

Tālāk konfigurējam sshd_config, kas atrodas C:ProgramDatassh. Piemēram:

PasswordAuthentication no
PubkeyAuthentication yes

Un izveidojam lietotāja mapē direktoriju .ssh, bet tajā failu authorized_keys. Tajā ierakstām publiskās atslēgas.

Svarīgs paskaidrojums: rakstīšanas tiesības šajā failā var iegūt tikai lietotājs, kura direktorijā atrodas fails.

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

StrictModes nē

Starpcitu, C:Program FilesOpenSSH atrodas 2 skripti (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), kuriem vajadzētu, bet nav obligāti, labot tiesības, tostarp arī ar authorized_keys, bet kāpēc kaut kādā ziņā nemaz neatlabo.

Nepieciešams neaizmirst pārlādēt pakalpojumu sshd. pēc tam, lai realizētu izmaiņas.

ru-mbp-666:infrastructure$ ssh Administrator@192.168.1.10 -i ~/ .ssh/id_rsa
Windows PowerShell
Autortiesības (C) 2016 Microsoft Corporation. Visas tiesības rezervētas.

PS C:UsersAdministrator> Get-Host


Nosaukums          : ConsoleHost
Versija           : 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    : Patiesi
IsRunspacePushed  : Ne
Runspace          : System.Management.Automation.Runspaces.LocalRunspace

PS C:UsersAdministrator>

Subjektīvie plusi/mīnusi.

Priekšrocības:

  • Standarta pieeja savienojumam ar serveriem.
    Kad ir nedaudz Windows mašīnu, ļoti neērti, kad:
    Tā, šeit mēs izpildām caur ssh, bet šeit rdp,
    un vispār best-practice ar bastioniem, vispirms ssh-tunelis, un caur to RDP.
  • Vienkāršība konfigurācijā
    Uzskatu, ka tas ir acīmredzami.
  • Savienojuma ātrums un darbs ar attālinātu mašīnu
    Nav grafiskās saskares, taupās gan servera resursi, gan pārsūtīto datu apjoms.

Mīnusi:

  • Pilnībā neaizvieto RDP.
    Ne visu var izdarīt no konsoles, diemžēl. Es domāju situācijas, kad nepieciešama GUI.

Rakstā izmantotie materiāli:
Saites uz pašu projektu
Uzstādīšanas varianti bezkaunīgi aizņemti no Ansible docs.

Avots: habr.com

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster