Linux kimi SSH vasitəsilə Windows-a qoşulma

Mən həmişə Windows maşınlarına qoşulmaqdan məyus olmuşam. Xeyr, mən Microsoft və onların məhsullarının nə rəqibi, nə də tərəfdarı deyiləm. Hər bir məhsul öz məqsədi üçün mövcuddur, lakin bu, bununla bağlı deyil.
Windows serverlərinə qoşulmaq mənim üçün həmişə dözülməz dərəcədə ağrılı olub, çünki bu əlaqələr ya bir yerdən konfiqurasiya edilib (HTTPS ilə salam WinRM) və ya çox stabil işləmir (xarici virtual maşınlara salam RDP).

Buna görə də, təsadüfən layihə ilə qarşılaşdım Win32-OpenSSH, quraşdırma təcrübəmi bölüşmək qərarına gəldim. Bəlkə də bu vasitə kiminsə çox əsəblərini xilas edəcək.

Linux kimi SSH vasitəsilə Windows-a qoşulma

Quraşdırma seçimləri:

  1. Əllə
  2. Vasitəsilə paketi Chocolatey
  3. Via Ansible, məsələn, rol jborean93.win_openssh

Sonra, birinci nöqtə haqqında danışacağam, çünki qalanları ilə hər şey daha az və ya çox aydındır.

Qeyd edim ki, bu layihə hələ beta mərhələsindədir, ona görə də ondan istehsalda istifadə etmək tövsiyə edilmir.

Beləliklə, ən son buraxılışı yükləyin, hazırda odur 7.9.0.0p1-beta. Həm 32, həm də 64 bitlik sistemlər üçün versiyalar var.

Paketdən çıxarın C: Proqram FilesOpenSSH
Düzgün işləmək üçün məcburi bir nöqtə: yalnız SİSTEMİ və admin qrupu.

Skriptdən istifadə edərək xidmətlərin quraşdırılması install-sshd.ps1 bu kataloqda yerləşir

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

22 nömrəli portda daxil olan əlaqələrə icazə verin:

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

Aydınlaşdırma: applet Yeni-NetFirewallRule Windows Server 2012 və sonrakı versiyalarında istifadə olunur. Ən köhnə sistemlərdə (və ya masaüstündə) əmrdən istifadə edə bilərsiniz:

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

Xidmətə başlayaq:

net start sshd

Başlanğıcda host açarları avtomatik olaraq yaradılacaq (əgər yoxdursa). %proqram məlumatı%ssh

Sistem əmrlə işə salındıqda xidmətin avtomatik başlamasını aktivləşdirə bilərik:

Set-Service sshd -StartupType Automatic

Siz həmçinin standart əmr qabığını dəyişdirə bilərsiniz (quraşdırıldıqdan sonra standartdır cmd):

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

Aydınlaşdırma: Siz mütləq yol göstərməlisiniz.

Növbəti nədir?

Və sonra onu qurduq sshd_configyerləşdirəcəyimiz C: Proqram Məlumatı. Məsələn:

PasswordAuthentication no
PubkeyAuthentication yes

Və istifadəçi qovluğunda bir kataloq yaradın .ssh, və içərisində fayl səlahiyyətli_keys. Orada açıq açarları yazırıq.

Vacib izahat: yalnız qovluğunda faylın yerləşdiyi istifadəçinin bu fayla yazmaq hüququ olmalıdır.

Ancaq bununla bağlı probleminiz varsa, konfiqurasiyada hüquqların yoxlanılmasını həmişə söndürə bilərsiniz:

StrictModes no

Yeri gəlmişkən, in C: Proqram FilesOpenSSH 2 skript var (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), o cümlədən hüquqlarını təyin etməli, lakin məcburi olmayan səlahiyyətli_keys, lakin nədənsə qeydiyyatdan keçmirlər.

Xidməti yenidən başlatmağı unutmayın ssh dəyişiklikləri tətbiq etdikdən sonra.

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>

Subyektiv müsbət / mənfi cəhətləri.

Pros:

  • Serverlərə qoşulmaq üçün standart yanaşma.
    Windows maşınları az olduqda, bu çox əlverişsizdir:
    Beləliklə, biz ssh vasitəsilə gedirik və burada rdp-dən istifadə edirik,
    və ümumiyyətlə, bastionlarla ən yaxşı təcrübə əvvəlcə ssh tuneli və onun vasitəsilə RDP-dir.
  • Qurmaq asandır
    Düşünürəm ki, bu aydındır.
  • Bağlantı sürəti və uzaq bir maşınla işləmək
    Həm server resurslarına, həm də ötürülən məlumatların miqdarına qənaət edən qrafik qabıq yoxdur.

Eksiler:

  • RDP-ni tamamilə əvəz etmir.
    Təəssüf ki, konsoldan hər şeyi etmək mümkün deyil. Mən GUI tələb olunan vəziyyətləri nəzərdə tuturam.

Məqalədə istifadə olunan materiallar:
Layihənin özü ilə əlaqə
Quraşdırma variantları həyasızcasına kopyalanır Ansible sənədlər.

Mənbə: www.habr.com

Добавить комментарий