Kuunganisha kwa Windows kupitia SSH kama Linux

Nimekuwa nikifadhaika kila wakati kwa kuunganishwa na mashine za Windows. Hapana, mimi si mpinzani wala mfuasi wa Microsoft na bidhaa zao. Kila bidhaa ipo kwa madhumuni yake mwenyewe, lakini sio hii inahusu.
Imekuwa chungu sana kwangu kuunganishwa na seva za Windows, kwa sababu miunganisho hii ama imesanidiwa kupitia sehemu moja (hello WinRM na HTTPS) au haifanyi kazi kwa utulivu (hello RDP kwa mashine pepe nje ya nchi).

Kwa hivyo, baada ya kupata mradi huo kwa bahati mbaya Win32-OpenSSH, niliamua kushiriki uzoefu wangu wa usanidi. Labda chombo hiki kitaokoa mtu mishipa mengi.

Kuunganisha kwa Windows kupitia SSH kama Linux

Chaguzi za ufungaji:

  1. Binafsi
  2. Kupitia mfuko Chocolatey
  3. Kupitia Ansible, kwa mfano jukumu jborean93.win_openssh

Ifuatayo, nitazungumza juu ya hatua ya kwanza, kwani kila kitu ni wazi zaidi au kidogo na wengine.

Ningependa kutambua kuwa mradi huu bado uko katika hatua ya beta, kwa hivyo haipendekezi kuutumia katika uzalishaji.

Kwa hiyo, pakua toleo la hivi karibuni, kwa sasa ni 7.9.0.0p1-beta. Kuna matoleo ya mifumo ya 32 na 64 bit.

Fungua ndani C:Programu FilesOpenSSH
Hatua ya lazima kwa operesheni sahihi: tu SYSTEM na kikundi cha admin.

Kufunga huduma kwa kutumia hati install-sshd.ps1 iko kwenye saraka hii

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

Ruhusu miunganisho inayoingia kwenye bandari 22:

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

Ufafanuzi: applet Sheria mpya ya NetFirewall kutumika kwenye Windows Server 2012 na baadaye. Katika mifumo ya zamani zaidi (au desktop) unaweza kutumia amri:

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

Wacha tuanze huduma:

net start sshd

Wakati wa kuanza, funguo za seva pangishi zitatolewa kiotomatiki (ikiwa hazipo) ndani %programdata%ssh

Tunaweza kuwezesha uanzishaji kiotomatiki wa huduma wakati mfumo unapoanza na amri:

Set-Service sshd -StartupType Automatic

Unaweza pia kubadilisha ganda la amri chaguo-msingi (baada ya usakinishaji, chaguo-msingi ni CMD):

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

Ufafanuzi: Lazima ubainishe njia kamili.

Nini hapo?

Na kisha tunaiweka sshd_config, ambayo tutaweka ndani C: Data ya Programu. Kwa mfano:

PasswordAuthentication no
PubkeyAuthentication yes

Na unda saraka kwenye folda ya mtumiaji .shsh, na ndani yake faili funguo_zilizoidhinishwa. Tunaandika funguo za umma hapo.

Ufafanuzi muhimu: mtumiaji pekee ambaye faili iko katika saraka yake ndiye anayepaswa kuwa na haki ya kuandika faili hii.

Lakini ikiwa una shida na hii, unaweza kuzima ukaguzi wa haki kila wakati kwenye usanidi:

StrictModes no

Kwa njia, ndani C:Programu FilesOpenSSH kuna maandishi 2 (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), ambayo inapaswa lakini si wajibu wa kurekebisha haki, ikiwa ni pamoja na funguo_zilizoidhinishwa, lakini kwa sababu fulani hawasajili.

Usisahau kuanzisha upya huduma sshd baada ya kutumia mabadiliko.

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>

Faida/hasara za mada.

Faida:

  • Mbinu ya kawaida ya kuunganisha kwenye seva.
    Wakati kuna mashine chache za Windows, ni ngumu sana wakati:
    Kwa hivyo, hapa tunapitia ssh, na hapa tunatumia rdp,
    na kwa ujumla, mazoezi bora zaidi na bastions ni kwanza handaki ya ssh, na RDP kupitia hiyo.
  • Rahisi kuanzisha
    Nadhani hii ni dhahiri.
  • Kasi ya unganisho na kufanya kazi na mashine ya mbali
    Hakuna ganda la picha, linalohifadhi rasilimali zote za seva na kiasi cha data iliyopitishwa.

Minus:

  • Haibadilishi kabisa RDP.
    Sio kila kitu kinaweza kufanywa kutoka kwa koni, ole. Ninamaanisha hali ambapo GUI inahitajika.

Nyenzo zinazotumiwa katika makala:
Unganisha kwa mradi wenyewe
Chaguzi za usakinishaji zimenakiliwa bila aibu kutoka Hati zinazofaa.

Chanzo: mapenzi.com

Kuongeza maoni