SSH kapcsolat létrehozása Windows alatt, mint Linuxban

Mindig is frusztrált a Windows gépekhez való csatlakozás. Nem, nem vagyok a Microsoft és termékeik ellenfele, és nem is annak a pártja. Minden termék a saját céljára létezik, de nem erről van szó.
Számomra mindig is fájdalmas volt csatlakozni a Windows szerverekhez, mert ezek a kapcsolatok vagy rendkívül bonyolultak (helló WinRM HTTPS-sel) vagy nem igazán megbízhatóak (üdvözlet az óceánon túli virtuális gépek RDP-jének).

Ezért, amikor véletlenül rábukkantam a projekt Win32-OpenSSH, úgy döntöttem, megosztom a konfigurálással kapcsolatos tapasztalataimat. Talán ez az eszköz másoknak is megspórol néhány idegeskedést.

SSH kapcsolat létrehozása Windows alatt, mint Linuxban

Telepítési lehetőségek:

  1. Kézi
  2. Keresztül csomag Chocolatey
  3. Például Az Ansible-en keresztül a szereppel jborean93.win_openssh

A következő részben az első pontról fogok beszélni, mivel a többi már nagyjából világos.

Megjegyzem, hogy ez a projekt jelenleg béta fázisban van, ezért nem ajánlják a termelésben való használatát.

Tehát letöltjük az utolsó kiadást, jelenleg ez a 7.9.0.0p1-beta. Léteznek verziók 32 és 64 bites rendszerekhez is.

Kicsomagoljuk a C:Program FilesOpenSSH
Kötelező dolog a megfelelő működéshez: a könyvtár írási engedélyekkel csak a SYSTEM és az adminisztrátor csoport számára kell, hogy legyen.

A szolgáltatások telepítéséhez futtassuk a install-sshd.ps1 scriptet, amely ebben a könyvtárban található.

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

Engedélyezzük a bejövő csatlakozásokat a 22-es porton:

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

Pontosítás: az New-NetFirewallRule applet a Windows Server 2012 és újabb verziókban használható. Régebbi rendszerekben (vagy asztali gépeken) az alábbi parancsot lehet használni:

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

Indítjuk a szolgáltatást:

net start sshd

A szolgáltatás indítása során automatikusan generálódnak a host-kulcsok (ha nincsenek végig) a %programdata%ssh

A szolgáltatás automatikus indítása a rendszer indításakor az alábbi parancsot futtatva engedélyezhetjük:

Set-Service sshd -StartupType Automatic

Ezen kívül, megváltoztathatjuk az alapértelmezett parancssort (a telepítés után az alapértelmezett — cmd):

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

Pontok: Az abszolút utat meg kell adni.

Mi következik?

Aztán beállítjuk a sshd_config, amely a következő helyen található: C:ProgramDatassh. Például:

PasswordAuthentication no
PubkeyAuthentication yes

És létrehozzuk a felhasználói mappában a könyvtárat .ssh, benne a fájl authorized_keys. Ide kell beírni a nyilvános kulcsokat.

Fontos megjegyzés: a fájl írási jogával csak annak a felhasználónak kell rendelkeznie, akinek a könyvtárában a fájl található.

De ha ezzel problémái vannak, mindig ki lehet kapcsolni a jogok ellenőrzését a konfigurációban:

StrictModes no

Egyébként, a C:Program FilesOpenSSH két szkript található (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), amelyeknek meg kellene, de nem kötelezően javítaniuk a jogokat, beleértve a authorized_keys, de valamiért nem javítják.

Ne felejtsd el újraindítani a szolgáltatást sshd a változtatások alkalmazása érdekében.

ru-mbp-666:infrastructure$ ssh Administrator@192.168.1.10 -i ~/.ssh/id_rsa
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. Minden jog fenntartva.

PS C:UsersAdministrator> Get-Host


Név             : ConsoleHost
Verzió          : 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>

Szubjektív előnyök/hátrányok.

Előnyök:

  • A kiszolgálókhoz való csatlakozás standard megközelítése.
    Amikor van néhány Windows gép, nagyon kényelmetlen, amikor:
    Itt SSH-n keresztül megyünk, ott RDP,
    és egyáltalán a legjobb gyakorlat a bastionokkal, először SSH-alagút, aztán RDP rajta.
  • A beállítás egyszerűsége
    Úgy gondolom, hogy ez nyilvánvaló.
  • A távoli géphez való csatlakozás sebessége és működése
    Nincs grafikus felület, így spórolunk a szerver erőforrásaival és az átadott adatok mennyiségével is.

Hátrányok:

  • Nem helyettesíti teljesen az RDP-t.
    Nem mindent lehet megcsinálni a konzolból, sajnos. Arra gondolok, amikor GUI-ra van szükség.

A cikkhez használt anyagok:
Link a projekthez
A telepítési lehetőségek arcátlanul másolva lettek a Ansible docs.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster