Anslutning till Windows via SSH som i Linux

Jag har alltid blivit nedslagen av att ansluta till Windows-maskiner. Nej, jag Àr varken motstÄndare till eller föresprÄkare för Microsoft och deras produkter. Varje produkt har sitt syfte, men det handlar inte om det.
Det har alltid varit en plÄga för mig att ansluta till servrar med Windows, eftersom dessa anslutningar antingen sÀtts upp pÄ ett komplicerat sÀtt (hej WinRM med HTTPS) eller fungerar ganska instabilt (hej RDP till virtuella maskiner över havet).

DÀrför, nÀr jag av en slump snubblade över projektet Win32-OpenSSH, bestÀmde jag mig för att dela med mig av min erfarenhet av installation. Kanske kan det hÀr verktyget spara nÄgon massor av nerver.

Anslutning till Windows via SSH som i Linux

Installationsalternativ:

  1. Manuellt
  2. Genom paketet Chocolatey
  3. Genom Ansible, till exempel, rollen jborean93.win_openssh

HÀrnÀst kommer jag att berÀtta om den första punkten, eftersom de andra redan Àr ganska klara.

Jag vill pÄpeka att detta projekt fortfarande Àr i beta-stadiet, sÄ det rekommenderas inte att anvÀnda det i produktion.

SÄ, ladda ner den senaste versionen, för nÀrvarande Àr det 7.9.0.0p1-beta. Det finns versioner för bÄde 32- och 64-bitarsystem.

Packa upp i C:Program FilesOpenSSH
En obligatorisk punkt för korrekt funktion: skrivbehörighet i den hÀr katalogen mÄste endast ha SYSTEM och administratörsgruppen.

Installera tjÀnsterna med skriptet install-sshd.ps1 som finns i den hÀr katalogen

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

TillÄt inkommande anslutningar pÄ port 22:

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

Förtydligande: applet New-NetFirewallRule anvÀnds pÄ Windows Server 2012 och nyare. I Àldre system (eller desktopversioner) kan man anvÀnda kommandot:

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

Startar tjÀnsten:

net start sshd

Vid start kommer vÀrdnycklar att genereras automatiskt (om de saknas) i %programdata%ssh

Vi kan aktivera automatisk uppstart av tjÀnsten vid systemstart med kommandot:

Set-Service sshd -StartupType Automatic

Vi kan ocksÄ byta standardkommandoskal (efter installation, standard Àr cmd):

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

Förtydligande: Det Àr nödvÀndigt att ange den absoluta sökvÀgen.

Vad hÀnder hÀrnÀst?

Och sedan konfigurerar vi sshd_config, som ligger i C:ProgramDatasshJuniper (MX/QFX/ACX)

PasswordAuthentication no
PubkeyAuthentication yes

Och skapa en katalog i anvÀndarens mapp .ssh, och i den filen authorized_keys. Dit skriver vi de offentliga nycklarna.

Viktigt förtydligande: skrivbehörighet till denna fil mÄste endast ha den anvÀndare vars mapp filen ligger i.

Men om du har problem med detta kan du alltid inaktivera rÀttighetskontrollen i konfigurationen:

StrictModes no

For Ä nevne det, i C:Program FilesOpenSSH ligger 2 skript (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), som bör men inte alltid fixar rÀttigheterna, inklusive med authorized_keys, men av nÄgon anledning inte fixar.

Glöm inte att starta om tjÀnsten sshd. efter för att tillÀmpa Àndringarna.

ru-mbp-666:infrastructure$ ssh Administrator@192.168.1.10 -i ~/.ssh/id_rsa
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. Alla rÀttigheter förbehÄllna.

PS C:UsersAdministrator> Get-Host


Namn             : 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>

Subjektiva fördelar/nackdelar.

Fördelar:

  • Standardmetoden för anslutning till servrar.
    NÀr det finns nÄgra Windows-datorer Àr det mycket opraktiskt nÀr:
    SÄ hÀr gÄr vi in via ssh, och hÀr rdp,
    och överhuvudtaget bÀsta praxis med bastioner, först ssh-tunnel, och genom den RDP.
  • Enkelhet i instĂ€llningen
    Jag tycker att detta Àr uppenbart.
  • Anslutningshastighet och arbete med en fjĂ€rrdator
    Ingen grafisk grÀnssnitt, vilket sparar bÄde serverresurser och mÀngden överförda data.

Nackdelar:

  • ErsĂ€tter inte RDP helt.
    Inte allt kan göras frÄn konsolen, tyvÀrr. Jag menar situationer dÀr GUI krÀvs.

Materialet som anvÀndes i artikeln:
LÀnk till sjÀlva projektet
Installationsalternativen Àr frÀckt kopierade frÄn Ansible docs.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster