Mereu am fost frustrat de conectarea la mașini Windows. Nu, nu sunt nici un oponent, nici un susținător al Microsoft și al produselor lor. Fiecare produs există pentru propriul său scop, dar nu despre asta este vorba.
Întotdeauna a fost extrem de dureros pentru mine să mă conectez la serverele Windows, deoarece aceste conexiuni fie sunt configurate printr-un singur loc (bună ziua WinRM cu HTTPS) fie nu funcționează foarte stabil (bună ziua RDP la mașinile virtuale de peste mări).
Prin urmare, după ce am întâlnit accidental proiectul Win32-OpenSSH, am decis să împărtășesc experiența mea de configurare. Poate că acest instrument va salva pe cineva o mulțime de nervi.
Clarificare: applet New-NetFirewall Rule utilizat pe Windows Server 2012 și versiuni ulterioare. În cele mai vechi sisteme (sau desktop) puteți folosi comanda:
Clarificare: trebuie să specificați o cale absolută.
Ce urmeaza?
Și apoi l-am pus la punct sshd_config, pe care o vom plasa C: Date program. De exemplu:
PasswordAuthentication no
PubkeyAuthentication yes
Și creați un director în folderul utilizator .ssh, iar în el fișierul chei_autorizate. Scriem acolo cheile publice.
Precizare importantă: doar utilizatorul în directorul căruia se află fișierul ar trebui să aibă dreptul de a scrie în acest fișier.
Dar dacă aveți probleme cu aceasta, puteți oricând să dezactivați verificarea drepturilor în configurație:
StrictModes no
Apropo, în C:Fișiere de programOpenSSH sunt 2 scripturi (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), care ar trebui, dar nu sunt obligați să stabilească drepturi, inclusiv cu chei_autorizate, dar din anumite motive nu se înregistrează.
Nu uitați să reporniți serviciul ssh după a aplica modificările.
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>
Argumente pro/contra subiective.
Pro-uri:
Abordare standard pentru conectarea la servere. Când există puține mașini Windows, este foarte incomod când:
Deci, aici mergem prin ssh și aici folosim rdp,
și, în general, cea mai bună practică cu bastioane este mai întâi un tunel ssh și RDP prin el.
Ușor de configurat Cred că acest lucru este evident.
Viteza de conectare și lucru cu o mașină de la distanță Nu există un shell grafic, economisind atât resursele serverului, cât și cantitatea de date transmise.
Contra:
Nu înlocuiește complet RDP. Nu totul se poate face din consolă, vai. Mă refer la situații în care este necesară o GUI.