Jeg har altid været frustreret over at forbinde til Windows-maskiner. Nej, jeg er hverken modstander eller tilhænger af Microsoft og deres produkter. Hvert produkt har sit formål, men det er ikke det, jeg taler om.
For mig har det altid været smertefuldt at forbinde til servere med Windows, fordi disse forbindelser enten konfigureres på besværlige måder (hej WinRM med HTTPS), eller de fungerer ikke særlig stabilt (hej RDP til virtuelle maskiner over havet).
Derfor, ved en tilfældighed stødte jeg på projektet , og jeg besluttede at dele min erfaring med opsætningen. Måske vil dette værktøj spare nogen for en masse nerver.

Installationsmuligheder:
- Gennem Chocolatey
- Gennem Ansible, for eksempel rollen
Jeg vil nu tale om det første punkt, da de øvrige er mere eller mindre tydelige.
Jeg bemærker, at dette projekt stadig er i beta, så det anbefales ikke at bruge det i produktion.
Så, download den nyeste version, i øjeblikket er det . Der er versioner til både 32- og 64-bit systemer.
Pakker ud til C:Program FilesOpenSSH
Et vigtigt punkt for korrekt drift: skriveadgang til denne mappe skal kun være for SYSTEM og admin-gruppen.
Installerer tjenesterne med scriptet install-sshd.ps1 som findes i denne mappe
powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1Tillader indkommende forbindelser på port 22:
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22Præcisering: applet New-NetFirewallRule bruges på Windows Server 2012 og nyere. På ældre systemer (eller desktop) kan man bruge kommandoen:
netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22
Start the service:
net start sshdVed opstart genereres værtsnøgler automatisk (hvis de ikke allerede findes) i %programdata%ssh
Vi kan aktivere automatisk opstart af tjenesten ved systemstart med kommandoen:
Set-Service sshd -StartupType AutomaticMan kan også ændre standard shell (efter installation er det som standard — cmd):
New-ItemProperty -Path "HKLM:SOFTWAREOpenSSH" -Name DefaultShell -Value "C:WindowsSystem32WindowsPowerShellv1.0powershell.exe" -PropertyType String -ForcePræcisering: Det er nødvendigt at angive den absolutte sti.
Hvad nu?
Og så konfigurerer vi sshd_config, som ligger i C:ProgramDatassh. For eksempel:
PasswordAuthentication no
PubkeyAuthentication yesOg vi opretter en mappe i brugerens hjemmemappe .ssh, og deri en fil authorized_keys. Her skriver vi de offentlige nøgler.
Vigtig præcisering: Kun brugeren, der ejer mappen, må have skriveadgang til denne fil.
Men hvis du har problemer med dette, kan du altid deaktivere rettighedskontrollen i konfigurationen:
StrictModes noFor at nævne noget, i C:Program FilesOpenSSH der ligger 2 scripts (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), som skal, men ikke nødvendigvis skal, rette rettigheder, herunder authorized_keys, men gør det på en eller anden måde ikke.
Glem ikke at genstarte tjenesten sshd efter for at anvende ændringerne.
ru-mbp-666:infrastructure$ ssh Administrator@192.168.1.10 -i ~/ .ssh/id_rsa
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. Alle rettigheder forbeholdes.
PS C:UsersAdministrator> Get-Host
Navn : 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>Subjektive fordele/ulempen.
Fordele:
- Standardmetode til at forbinde til servere.
Når der er et par Windows-maskiner, er det meget ubelejligt når:
Så her går vi via ssh, og her er RDP,
og generelt best practice med bastioner, først ssh-tunnel, og så RDP via den. - Simpel opsætning
Jeg mener, det er åbenbart. - Hastigheden ved tilslutning og arbejde med den eksterne maskine
Der er ingen grafisk grænseflade, hvilket sparer både serverressourcer og mængden af overførte data.
Ulemper:
- Erstatte RDP fuldstændigt.
Ikke alt kan gøres fra konsollen, desværre. Jeg mener situationer, hvor der kræves GUI.
Materialerne brugt i artiklen:
Installationsmetoderne er skammeligt kopieret fra .
Kilde: habr.com
