Yhdistäminen Windowsiin SSH:n kautta, kuten Linux

Olen aina ollut turhautunut yhteyden muodostamiseen Windows-koneisiin. Ei, en ole Microsoftin ja sen tuotteiden vastustaja enkä kannattaja. Jokainen tuote on olemassa omaa tarkoitustaan ​​varten, mutta siitä ei ole kyse.
Minulle on aina ollut tuskallista muodostaa yhteyttä Windows-palvelimiin, koska nämä yhteydet on joko määritetty yhdestä paikasta (hei WinRM HTTPS:llä) tai eivät toimi kovin vakaasti (hei RDP virtuaalikoneen ulkomaille).

Siksi olen vahingossa törmännyt projektiin Win32-OpenSSH, päätin jakaa asennuskokemukseni. Ehkä tämä työkalu säästää jonkun paljon hermoja.

Yhdistäminen Windowsiin SSH:n kautta, kuten Linux

Asennusvaihtoehdot:

  1. käsin
  2. Kautta paketti chocolatey
  3. Via Ansible, esimerkiksi rooli jborean93.win_openssh

Seuraavaksi puhun ensimmäisestä kohdasta, koska kaikki on enemmän tai vähemmän selvää muiden kanssa.

Haluan huomauttaa, että tämä projekti on vielä beta-vaiheessa, joten sen käyttöä tuotannossa ei suositella.

Lataa siis uusin julkaisu, tällä hetkellä se on 7.9.0.0p1-beta. Versioita on sekä 32- että 64-bittisille järjestelmille.

Pura sisään C: Program FilesOpenSSH
Pakollinen piste oikean toiminnan kannalta: vain SYSTEM ja admin ryhmä.

Palvelujen asentaminen komentosarjan avulla install-sshd.ps1 sijaitsee tässä hakemistossa

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

Salli saapuvat yhteydet portissa 22:

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

Selvennys: sovelma Uusi-NetFirewallRule käytetään Windows Server 2012:ssa ja uudemmissa. Vanhimmissa järjestelmissä (tai työpöydällä) voit käyttää komentoa:

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

Aloitetaan palvelu:

net start sshd

Käynnistettäessä isäntäavaimet luodaan automaattisesti (jos puuttuvat). %programdata%ssh

Voimme ottaa palvelun automaattisen käynnistyksen käyttöön, kun järjestelmä käynnistyy komennolla:

Set-Service sshd -StartupType Automatic

Voit myös vaihtaa oletuskomentotulkin (asennuksen jälkeen oletusarvo on cmd):

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

Selvennys: Sinun on määritettävä absoluuttinen polku.

Mitä seuraavaksi?

Ja sitten perustimme sen sshd_config, johon laitamme C: Ohjelmatiedot. Esimerkiksi:

PasswordAuthentication no
PubkeyAuthentication yes

Ja luo hakemisto käyttäjäkansioon .sh, ja siinä oleva tiedosto authorised_keys. Kirjoitamme sinne julkiset avaimet.

Tärkeä selvennys: vain käyttäjällä, jonka hakemistossa tiedosto sijaitsee, tulee olla oikeus kirjoittaa tähän tiedostoon.

Mutta jos sinulla on ongelmia tämän kanssa, voit aina kytkeä oikeuksien tarkistuksen pois päältä asetuksista:

StrictModes no

Muuten sisään C: Program FilesOpenSSH siellä on 2 skriptiä (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), joiden pitäisi, mutta eivät ole velvollisia, vahvistamaan oikeuksia, mukaan lukien authorised_keys, mutta jostain syystä he eivät rekisteröidy.

Muista käynnistää palvelu uudelleen sshd jälkeen ottaa muutokset käyttöön.

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>

Subjektiiviset plussat/miinukset.

Plussat:

  • Normaali lähestymistapa palvelimiin yhdistämiseen.
    Kun Windows-koneita on vähän, se on erittäin hankalaa, kun:
    Joten tässä mennään ssh:n kautta, ja tässä käytetään rdp:tä,
    ja yleensä paras käytäntö bastionien kanssa on ensin ssh-tunneli ja RDP sen läpi.
  • Helppo asentaa
    Mielestäni tämä on ilmeistä.
  • Yhteyden nopeus ja työskentely etäkoneella
    Graafista kuorta ei ole, mikä säästää sekä palvelinresursseja että siirrettävän tiedon määrää.

Miinukset:

  • Ei täysin korvaa RDP:tä.
    Kaikkea ei voi tehdä konsolista, valitettavasti. Tarkoitan tilanteita, joissa tarvitaan GUI.

Artikkelissa käytetyt materiaalit:
Linkki itse projektiin
Asennusvaihtoehdot kopioidaan häpeämättä Mahdolliset asiakirjat.

Lähde: will.com

Lisää kommentti