Csatlakozás a Windowshoz SSH-n keresztül, mint a Linux

Mindig is csalódott voltam a Windows gépekhez való csatlakozás miatt. Nem, nem vagyok sem ellenfele, sem támogatója a Microsoftnak és termékeiknek. Minden termék a saját céljára létezik, de ez nem erről szól.
Mindig is elviselhetetlenül fájdalmas volt a Windows szerverekhez való csatlakozás, mert ezek a kapcsolatok vagy egy helyen vannak konfigurálva (hello WinRM HTTPS-sel), vagy nem működnek túl stabilan (hello RDP a tengerentúli virtuális gépekhez).

Ezért véletlenül találkoztam a projekttel Win32-OpenSSH, úgy döntöttem, hogy megosztom a beállítási tapasztalataimat. Talán ez az eszköz sok ideget takarít meg valakinek.

Csatlakozás a Windowshoz SSH-n keresztül, mint a Linux

Telepítési lehetőségek:

  1. manuálisan
  2. Keresztül csomag csokis
  3. Via Ansible, például szerep jborean93.win_openssh

Ezután az első pontról fogok beszélni, mivel a többivel többé-kevésbé minden világos.

Szeretném megjegyezni, hogy ez a projekt még béta stádiumban van, ezért nem javasolt élesben használni.

Tehát töltse le a legújabb kiadást, jelenleg az 7.9.0.0p1-béta. Vannak verziók 32 és 64 bites rendszerekhez is.

Csomagold ki C: Program FilesOpenSSH
A helyes működés kötelező pontja: csak a RENDSZER és az admin csoport.

Szolgáltatások telepítése szkript segítségével install-sshd.ps1 ebben a könyvtárban található

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

Bejövő kapcsolatok engedélyezése 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: kisalkalmazás Új-NetFirewallRule Windows Server 2012 és újabb rendszeren használják. A legrégebbi rendszerekben (vagy asztalon) a következő parancsot használhatja:

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

Kezdjük a szolgáltatással:

net start sshd

Indításkor a gazdagép kulcsok automatikusan generálásra kerülnek (ha hiányoznak). %programdata%ssh

A szolgáltatás automatikus indítását engedélyezhetjük, amikor a rendszer a következő paranccsal indul:

Set-Service sshd -StartupType Automatic

Az alapértelmezett parancshéjat is módosíthatja (a telepítés után az alapértelmezett a cmd):

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

Pontosítás: Meg kell adni egy abszolút elérési utat.

Mi a következő lépés?

És akkor beállítottuk sshd_config, amit elhelyezünk C: Programadatok. Például:

PasswordAuthentication no
PubkeyAuthentication yes

És hozzon létre egy könyvtárat a felhasználói mappában .ssh, és benne a fájl engedélyezett kulcsok. Ott felírjuk a nyilvános kulcsokat.

Fontos pontosítás: csak annak a felhasználónak legyen joga írni ebbe a fájlba, akinek a könyvtárában a fájl található.

De ha ezzel problémáid vannak, a konfigban mindig kikapcsolhatod a jogellenőrzést:

StrictModes no

Mellesleg be C: Program FilesOpenSSH 2 szkript van (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), amelyeknek jogokat kell rögzíteniük, de nem kötelesek rögzíteni, beleértve a engedélyezett kulcsok, de valamiért nem regisztrálnak.

Ne felejtse el újraindítani a szolgáltatást sshd után alkalmazza a változtatásokat.

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>

Szubjektív pro / kontra.

Előnyök:

  • Szabványos megközelítés a szerverekhez való csatlakozáshoz.
    Ha kevés Windows gép van, nagyon kényelmetlen, ha:
    Tehát itt ssh-n keresztül megyünk, itt pedig rdp-t használunk,
    és általában a bástyáknál a legjobb gyakorlat először egy ssh alagút, és azon keresztül az RDP.
  • Könnyen beállítható
    Szerintem ez nyilvánvaló.
  • Csatlakozási sebesség és munka távoli géppel
    Nincs grafikus héj, amely megtakarítja a szerver erőforrásait és a továbbított adatok mennyiségét.

Hátrányok:

  • Nem helyettesíti teljesen az RDP-t.
    Sajnos nem lehet mindent megtenni a konzolról. Olyan helyzetekre gondolok, amikor GUI-ra van szükség.

A cikkben felhasznált anyagok:
Link magához a projekthez
A telepítési lehetőségeket szégyentelenül másolják Ansible dok.

Forrás: will.com

Hozzászólás