Linux сияқты SSH арқылы Windows жүйесіне қосылу

Мен әрқашан Windows машиналарына қосылудан ренжідім. Жоқ, мен Microsoft пен оның өнімдерінің қарсыласы да, қолдаушысы да емеспін. Әрбір өнім өз мақсаты үшін бар, бірақ бұл туралы емес.
Мен үшін Windows серверлеріне қосылу әрқашан өте ауыр болды, себебі бұл қосылымдар бір жерден конфигурацияланған (HTTPS бар WinRM сәлем) немесе өте тұрақты жұмыс істемейді (шетелдегі виртуалды машиналарға сәлем RDP).

Сондықтан жобаға кездейсоқ тап болдым Win32-OpenSSH, Мен орнату тәжірибеммен бөлісуді шештім. Мүмкін, бұл құрал біреудің жүйкесін сақтайды.

Linux сияқты SSH арқылы Windows жүйесіне қосылу

Орнату опциялары:

  1. Қолмен
  2. Арқылы Пакет Chocolatey
  3. Ansible арқылы, мысалы рөл jborean93.win_openssh

Әрі қарай, мен бірінші мәселе туралы айтатын боламын, өйткені қалғандарымен бәрі азды-көпті түсінікті.

Бұл жоба әлі бета сатысында екенін атап өткім келеді, сондықтан оны өндірісте пайдалану ұсынылмайды.

Сонымен, соңғы шығарылымды жүктеп алыңыз, дәл қазір 7.9.0.0p1-бета. 32 және 64 биттік жүйелерге арналған нұсқалар бар.

Орамнан шығарыңыз C: Program FilesOpenSSH
Дұрыс жұмыс істеу үшін міндетті нүкте: тек ЖҮЙЕСІ және әкімші тобы.

Сценарий арқылы қызметтерді орнату install-sshd.ps1 осы каталогта орналасқан

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

22 портта кіріс қосылымдарға рұқсат беріңіз:

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

Түсіндіру: апплет New-NetFirewallRule Windows Server 2012 және одан кейінгі нұсқаларында қолданылады. Ең ескі жүйелерде (немесе жұмыс үстелінде) сіз пәрменді пайдалана аласыз:

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

Қызметті бастайық:

net start sshd

Іске қосу кезінде хост кілттері автоматты түрде жасалады (егер жоқ болса). %бағдарлама деректері%ssh

Жүйе пәрменмен іске қосылғанда қызметтің автоқосуын қоса аламыз:

Set-Service sshd -StartupType Automatic

Сондай-ақ әдепкі пәрмен қабығын өзгертуге болады (орнатқаннан кейін әдепкі cmd):

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

Түсіндіру: абсолютті жолды көрсету керек.

Ары қарай не?

Содан кейін біз оны орнаттық sshd_config, біз оны орналастырамыз C: Бағдарлама деректері. Мысалы:

PasswordAuthentication no
PubkeyAuthentication yes

Және пайдаланушы қалтасында каталог жасаңыз .ssh, және оның ішінде файл рұқсат етілген_кілттер. Біз сонда ашық кілттерді жазамыз.

Маңызды түсініктеме: бұл файлға жазу құқығы каталогында файл орналасқан пайдаланушы ғана болуы керек.

Бірақ егер сізде бұл мәселе туындаса, конфигурацияда құқықтарды тексеруді әрқашан өшіруге болады:

StrictModes no

Айтпақшы, в C: Program FilesOpenSSH 2 сценарий бар (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), құқықтарды бекітуге міндетті, бірақ міндетті емес, соның ішінде рұқсат етілген_кілттер, бірақ қандай да бір себептермен олар тіркелмейді.

Қызметті қайта қосуды ұмытпаңыз sshd өзгертулерді қолданғаннан кейін.

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>

Субъективті жақсы/жаман жақтары.

Артықшылықтары:

  • Серверлерге қосылудың стандартты тәсілі.
    Windows машиналары аз болған кезде, бұл өте ыңғайсыз:
    Сонымен, біз ssh арқылы барамыз және мұнда rdp пайдаланамыз,
    және жалпы алғанда, бастиондармен ең жақсы тәжірибе алдымен ssh туннелі және ол арқылы RDP болып табылады.
  • Орнату оңай
    Менің ойымша, бұл анық.
  • Қосылу жылдамдығы және қашықтағы машинамен жұмыс
    Сервер ресурстарын да, жіберілетін деректер көлемін де сақтайтын графикалық қабық жоқ.

Кемшіліктері:

  • RDP толығымен алмастырмайды.
    Консольден бәрін жасау мүмкін емес, өкінішке орай. Мен GUI қажет жағдайларды айтамын.

Мақалада пайдаланылған материалдар:
Жобаның өзіне сілтеме
Орнату опциялары ұятсыз көшіріледі Ansible құжаттар.

Ақпарат көзі: www.habr.com

пікір қалдыру