Vždy ma frustrovalo pripojenie k počítačom so systémom Windows. Nie, nie som odporcom ani zástancom spoločnosti Microsoft a jej produktov. Každý produkt existuje na svoj vlastný účel, ale o to tu nejde.
Vždy bolo pre mňa neznesiteľne bolestivé pripojiť sa k serverom Windows, pretože tieto pripojenia sú buď nakonfigurované cez jedno miesto (ahoj WinRM s HTTPS), alebo nefungujú veľmi stabilne (ahoj RDP k virtuálnym počítačom v zámorí).
Preto, keď som náhodou natrafil na projekt Win32-OpenSSH, rozhodol som sa podeliť o svoje skúsenosti s nastavením. Snáď niekomu tento nástroj ušetrí veľa nervov.
Vysvetlenie: applet Nové pravidlo NetFirewall používané v systéme Windows Server 2012 a novších verziách. V najstarších systémoch (alebo desktopoch) môžete použiť príkaz:
A potom sme to nastavili SSHD_config, do ktorého umiestnime C: Údaje o programe, Napríklad:
PasswordAuthentication no
PubkeyAuthentication yes
A vytvorte adresár v používateľskom priečinku .ssha v ňom súbor autorizované_kľúče. Tam si zapíšeme verejné kľúče.
Dôležité upresnenie: právo zapisovať do tohto súboru by mal mať iba používateľ, v ktorého adresári sa súbor nachádza.
Ak s tým však máte problémy, kontrolu práv môžete kedykoľvek vypnúť v konfigurácii:
StrictModes no
Mimochodom, v C: Program FilesOpenSSH sú tam 2 skripty (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), ktoré by mali, ale nie sú povinné upravovať práva, vrátane s autorizované_kľúče, ale z nejakého dôvodu sa nezaregistrujú.
Nezabudnite reštartovať službu sshd po aplikovaní zmien.
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>
Subjektívne klady/zápory.
Pros:
Štandardný prístup k pripojeniu k serverom. Keď je málo počítačov so systémom Windows, je veľmi nepohodlné, keď:
Takže tu ideme cez ssh a tu používame rdp,
a vo všeobecnosti najlepším postupom s baštami je najprv ssh tunel a RDP cez neho.
Jednoduché nastavenie Myslím, že toto je zrejmé.
Rýchlosť pripojenia a práca so vzdialeným strojom Neexistuje žiadny grafický shell, ktorý šetrí zdroje servera aj množstvo prenášaných dát.
Nevýhody:
Nenahrádza úplne RDP. Nie všetko sa dá robiť z konzoly, bohužiaľ. Mám na mysli situácie, keď sa vyžaduje GUI.