Připojení k Windows přes SSH jako Linux

Vždy mě frustrovalo připojení k počítačům s Windows. Ne, nejsem odpůrcem ani zastáncem Microsoftu a jeho produktů. Každý produkt existuje pro svůj vlastní účel, ale o tom to není.
Vždy pro mě bylo nesnesitelně bolestivé připojovat se k serverům Windows, protože tato připojení jsou buď nakonfigurována přes jedno místo (ahoj WinRM s HTTPS), nebo nefungují příliš stabilně (ahoj RDP k virtuálním strojům v zámoří).

Proto, když jsem náhodou narazil na projekt Win32-OpenSSH, rozhodl jsem se podělit o své zkušenosti s nastavením. Snad někomu tato pomůcka ušetří spoustu nervů.

Připojení k Windows přes SSH jako Linux

Možnosti instalace:

  1. Ručně
  2. Přes пакет Čokoláda
  3. Via Ansible, například role jborean93.win_openssh

Dále budu mluvit o prvním bodě, protože se zbytkem je vše víceméně jasné.

Rád bych poznamenal, že tento projekt je stále ve fázi beta, takže se nedoporučuje používat jej ve výrobě.

Takže si stáhněte nejnovější verzi, v tuto chvíli je 7.9.0.0p1-beta. Existují verze pro 32 i 64 bitové systémy.

Vybalte se C:Program FilesOpenSSH
Povinný bod pro správnou funkci: pouze SYSTÉM a skupina administrátorů.

Instalace služeb pomocí skriptu install-sshd.ps1 umístěný v tomto adresáři

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

Povolit příchozí připojení na portu 22:

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

Upřesnění: applet Nové pravidlo NetFirewall používá se na Windows Server 2012 a novějších. V nejstarších systémech (nebo desktopech) můžete použít příkaz:

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

Začněme službu:

net start sshd

Při spuštění se automaticky vygenerují hostitelské klíče (pokud chybí). %programdata%ssh

Autostart služby můžeme povolit při spuštění systému příkazem:

Set-Service sshd -StartupType Automatic

Můžete také změnit výchozí příkazový shell (po instalaci je výchozí cmd):

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

Vysvětlení: Musíte zadat absolutní cestu.

Co bude dál?

A pak jsme to nastavili sshd_config, do kterého umístíme C: Data programu. Například:

PasswordAuthentication no
PubkeyAuthentication yes

A vytvořte adresář ve složce uživatele .ssha v něm soubor autorizované_klíče. Tam si zapíšeme veřejné klíče.

Důležité upřesnění: právo zapisovat do tohoto souboru by měl mít pouze uživatel, v jehož adresáři se soubor nachází.

Ale pokud s tím máte problémy, můžete vždy vypnout kontrolu práv v konfiguraci:

StrictModes no

Mimochodem, v C:Program FilesOpenSSH jsou 2 skripty (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), které by měly, ale nejsou povinny opravit práva, včetně s autorizované_klíče, ale z nějakého důvodu se nezaregistrují.

Nezapomeňte restartovat službu sshd poté, abyste použili změny.

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>

Subjektivní pro/proti.

výhody:

  • Standardní přístup k připojení k serverům.
    Když je počítačů se systémem Windows málo, je velmi nepohodlné, když:
    Takže tady jdeme přes ssh a tady používáme rdp,
    a obecně, nejlepší praxí s baštami je nejprve ssh tunel a RDP skrz něj.
  • Snadné nastavení
    Myslím, že to je zřejmé.
  • Rychlost připojení a práce se vzdáleným strojem
    Neexistuje žádný grafický shell, který šetří jak zdroje serveru, tak množství přenášených dat.

nevýhody:

  • Nenahrazuje zcela RDP.
    Bohužel ne všechno lze dělat z konzole. Mám na mysli situace, kdy je vyžadováno GUI.

Materiály použité v článku:
Odkaz na samotný projekt
Možnosti instalace jsou bezostyšně kopírovány z Ansible docs.

Zdroj: www.habr.com

Přidat komentář