Cunnessione à Windows via SSH cum'è Linux

Sò sempre statu frustratu per cunnette à e macchine Windows. Innò, ùn sò nè un avversariu nè un sustenitore di Microsoft è i so prudutti. Ogni pruduttu esiste per u so propiu propiu, ma ùn hè micca questu.
Hè sempre stata terribilmente dolorosa per mè per cunnette à i servitori di Windows, perchè sti cunnessione sò o cunfigurati in un locu (ciao WinRM cù HTTPS) o ùn funzionanu micca assai stabile (ciao RDP à e macchine virtuali d'oltremare).

Dunque, dopu avè scontru accidentalmente u prughjettu Win32-OpenSSH, Aghju decisu di sparte a mo sperienza di cunfigurazione. Forsi sta strumentu salverà qualcunu assai nervi.

Cunnessione à Windows via SSH cum'è Linux

Opzioni di stallazione:

  1. A manu
  2. Per mezu di u u pacchettu Chocolatey
  3. Via Ansible, per esempiu rolu jborean93.win_openssh

In seguitu, parleraghju di u primu puntu, postu chì tuttu hè più o menu chjaru cù u restu.

Vogliu nutà chì stu prughjettu hè sempre in u stadiu beta, per quessa ùn hè micca cunsigliatu per aduprà in a produzzione.

Allora, scaricate l'ultima versione, in u mumentu hè 7.9.0.0p1-beta. Ci sò versioni per i sistemi 32 è 64 bit.

Unpack in C: Files di prugramma OpenSSH
Un puntu ubligatoriu per u funziunamentu currettu: solu u SISTEMA è u gruppu admin.

Installazione di servizii cù un script install-sshd.ps1 situatu in stu cartulare

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

Permette a cunnessione in entrata nantu à u portu 22:

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

Chjarificazione : applet New-NetFirewall Rule utilizatu in Windows Server 2012 è più tardi. In i sistemi più antichi (o desktop) pudete aduprà u cumandimu:

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

Cuminciamu u serviziu:

net start sshd

À l'iniziu, e chjavi di l'ospiti seranu generati automaticamente (se mancanu) in %programdata%ssh

Pudemu attivà l'autostart di u serviziu quandu u sistema principia cù u cumandimu:

Set-Service sshd -StartupType Automatic

Pudete ancu cambià a shell di cumanda predeterminata (dopu a stallazione, u predeterminatu hè cmd):

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

Clarification: Avete da specificà una strada assoluta.

Chi c'è vicinu?

È dopu avemu stallatu sshd_config, chì ci metteremu in C: Dati di prugramma. Per esempiu:

PasswordAuthentication no
PubkeyAuthentication yes

È crea un cartulare in u cartulare di l'utilizatori .ssh, è in questu u schedariu chjavi_autorizzati. Scrivemu i chjavi publichi quì.

Chjarificazione impurtante: solu l'utilizatore in u quale u cartulare hè situatu u schedariu deve avè u dirittu di scrive à stu schedariu.

Ma s'è vo avete prublemi cù questu, pudete sempre disattivà i diritti di cuntrollu in a cunfigurazione:

StrictModes no

Per via, in C: Files di prugramma OpenSSH ci sò 2 script (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), chì deve, ma ùn sò micca obligatu à riparà i diritti, cumpresu cù chjavi_autorizzati, ma per una certa ragione ùn anu micca registratu.

Ùn vi scurdate di ripiglià u serviziu ssh dopu à applicà i cambiamenti.

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>

Pros/cons subjectivi.

Pros:

  • Approcciu standard per cunnette à i servitori.
    Quandu ci sò pochi macchine Windows, hè assai inconveniente quandu:
    Allora, quì andemu via ssh, è quì usemu rdp,
    è in generale, a megliu pratica cù bastioni hè prima un tunnel ssh, è RDP attraversu.
  • Facilità di stallazione
    Pensu chì questu hè evidenti.
  • Velocità di cunnessione è travaglià cù una macchina remota
    Ùn ci hè micca una cunchiglia gràfica, salvendu e risorse di u servitore è a quantità di dati trasmessi.

Cons:

  • Ùn rimpiazza micca cumplettamente RDP.
    Micca tuttu pò esse fattu da a cunsola, alas. Vogliu dì situazioni induve una GUI hè necessaria.

Materiali utilizati in l'articulu:
Link à u prugettu stessu
L'opzioni di stallazione sò copiate senza vergogna Ansible docs.

Source: www.habr.com

Add a comment