ื”ืชื—ื‘ืจื•ืช ืœ-Windows ื‘ืืžืฆืขื•ืช SSH ื›ืžื• ืœื™ื ื•ืงืก

ืชืžื™ื“ ื”ื™ื™ืชื™ ืžืชื•ืกื›ืœ ืžื”ื—ื™ื‘ื•ืจ ืœืžื›ื•ื ื•ืช ื•ื•ื™ื ื“ื•ืก. ืœื, ืื ื™ ืœื ืžืชื ื’ื“ ื•ืœื ืชื•ืžืš ืฉืœ ืžื™ืงืจื•ืกื•ืคื˜ ื•ื”ืžื•ืฆืจื™ื ืฉืœื”. ื›ืœ ืžื•ืฆืจ ืงื™ื™ื ืœืžื˜ืจื” ืฉืœื•, ืื‘ืœ ืœื ื‘ื–ื” ืžื“ื•ื‘ืจ.
ืชืžื™ื“ ื”ื™ื” ืœื™ ื›ื•ืื‘ ืขื“ ืžืื•ื“ ืœื”ืชื—ื‘ืจ ืœืฉืจืชื™ Windows, ื›ื™ ื”ื—ื™ื‘ื•ืจื™ื ื”ืืœื” ืžื•ื’ื“ืจื™ื ื“ืจืš ืžืงื•ื ืื—ื“ (ืฉืœื•ื WinRM ืขื HTTPS) ืื• ืฉื”ื ืœื ืขื•ื‘ื“ื™ื ืžืื•ื“ ื™ืฆื™ื‘ (ืฉืœื•ื RDP ืœืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ื‘ื—ื•"ืœ).

ืœื›ืŸ, ืœืื—ืจ ืฉื ืชืงืœ ื‘ื˜ืขื•ืช ื‘ืคืจื•ื™ืงื˜ Win32-OpenSSH, ื”ื—ืœื˜ืชื™ ืœืฉืชืฃ ืืช ื—ื•ื•ื™ืช ื”ื”ื’ื“ืจื” ืฉืœื™. ืื•ืœื™ ื”ื›ืœื™ ื”ื–ื” ื™ื—ืกื•ืš ืœืžื™ืฉื”ื• ื”ืจื‘ื” ืขืฆื‘ื™ื.

ื”ืชื—ื‘ืจื•ืช ืœ-Windows ื‘ืืžืฆืขื•ืช SSH ื›ืžื• ืœื™ื ื•ืงืก

ืืคืฉืจื•ื™ื•ืช ื”ืชืงื ื”:

  1. ื‘ืื•ืคืŸ ื™ื“ื ื™
  2. ื“ืจืš ื—ื‘ื™ืœื” ืฉื•ืงื•ืœื“
  3. ื“ืจืš Ansible, ืœืžืฉืœ ืชืคืงื™ื“ jborean93.win_openssh

ืœืื—ืจ ืžื›ืŸ, ืื“ื‘ืจ ืขืœ ื”ื ืงื•ื“ื” ื”ืจืืฉื•ื ื”, ืžื›ื™ื•ื•ืŸ ืฉื”ื›ืœ ืคื—ื•ืช ืื• ื™ื•ืชืจ ื‘ืจื•ืจ ืขื ื”ืฉืืจ.

ื‘ืจืฆื•ื ื™ ืœืฆื™ื™ืŸ ืฉื”ืคืจื•ื™ืงื˜ ื”ื–ื” ืขื“ื™ื™ืŸ ื‘ืฉืœื‘ ื”ื‘ื˜ื, ื•ืœื›ืŸ ืœื ืžื•ืžืœืฅ ืœื”ืฉืชืžืฉ ื‘ื• ื‘ื”ืคืงื”.

ืื–, ื”ื•ืจื“ ืืช ื”ืžื”ื“ื•ืจื” ื”ืื—ืจื•ื ื”, ื ื›ื•ืŸ ืœืขื›ืฉื™ื• 7.9.0.0p1-ื‘ื˜ื. ืงื™ื™ืžื•ืช ื’ืจืกืื•ืช ื”ืŸ ืœืžืขืจื›ื•ืช 32 ื•ื”ืŸ ืœืžืขืจื›ื•ืช 64 ื‘ื™ื˜.

ืœืคืจื•ืง ืคื ื™ืžื” C:Program FilesOpenSSH
ื ืงื•ื“ืช ื—ื•ื‘ื” ืœืคืขื•ืœื” ื ื›ื•ื ื”: ืจืง ืืช ืžืขืจื›ืช ื•ืงื‘ื•ืฆืช ื”ื ื™ื”ื•ืœ.

ื”ืชืงื ืช ืฉื™ืจื•ืชื™ื ื‘ืืžืฆืขื•ืช ืกืงืจื™ืคื˜ install-sshd.ps1 ืžืžื•ืงื ื‘ืกืคืจื™ื™ื” ื–ื•

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

ืืคืฉืจ ื—ื™ื‘ื•ืจื™ื ื ื›ื ืกื™ื ื‘ื™ืฆื™ืื” 22:

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

ื”ื‘ื”ืจื”: ื™ื™ืฉื•ืžื•ืŸ New-NetFirewallRule ื‘ืฉื™ืžื•ืฉ ื‘-Windows Server 2012 ื•ืื™ืœืš. ื‘ืžืขืจื›ื•ืช ื”ื•ื•ืชื™ืงื•ืช ื‘ื™ื•ืชืจ (ืื• ื‘ืฉื•ืœื—ืŸ ื”ืขื‘ื•ื“ื”) ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืคืงื•ื“ื”:

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

ื‘ื•ืื• ื ืชื—ื™ืœ ืืช ื”ืฉื™ืจื•ืช:

net start sshd

ื‘ืขืช ื”ื”ืคืขืœื”, ืžืคืชื—ื•ืช ืžืืจื— ื™ื•ืคืงื• ืื•ื˜ื•ืžื˜ื™ืช (ืื ื—ืกืจื™ื) ื‘ %programdata%ssh

ืื ื• ื™ื›ื•ืœื™ื ืœืืคืฉืจ ื”ืคืขืœื” ืื•ื˜ื•ืžื˜ื™ืช ืฉืœ ื”ืฉื™ืจื•ืช ื›ืืฉืจ ื”ืžืขืจื›ืช ืžืชื—ื™ืœื” ืขื ื”ืคืงื•ื“ื”:

Set-Service sshd -StartupType Automatic

ืืชื” ื™ื›ื•ืœ ื’ื ืœืฉื ื•ืช ืืช ืžืขื˜ืคืช ื”ืคืงื•ื“ื” ื”ืžื•ื’ื“ืจืช ื›ื‘ืจื™ืจืช ืžื—ื“ืœ (ืœืื—ืจ ื”ื”ืชืงื ื”, ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื”ื™ื cmd):

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

ื”ื‘ื”ืจื”: ืขืœื™ืš ืœืฆื™ื™ืŸ ื ืชื™ื‘ ืžื•ื—ืœื˜.

ืžื” ื”ืœืื”?

ื•ืื– ื”ื’ื“ืจื ื• ืืช ื–ื” sshd_config, ืฉื‘ื• ื ืžืงื C: ื ืชื•ื ื™ ืชื•ื›ื ื™ืช. ืœื“ื•ื’ืžื:

PasswordAuthentication no
PubkeyAuthentication yes

ื•ืฆื•ืจ ืกืคืจื™ื™ื” ื‘ืชื™ืงื™ื™ืช ื”ืžืฉืชืžืฉ .ssh, ื•ื‘ื• ื”ืงื•ื‘ืฅ ืžืคืชื—ื•ืช_ืžื•ืจืฉื™ื. ืื ื—ื ื• ืจื•ืฉืžื™ื ืฉื ืืช ื”ืžืคืชื—ื•ืช ื”ืฆื™ื‘ื•ืจื™ื™ื.

ื”ื‘ื”ืจื” ื—ืฉื•ื‘ื”: ืจืง ืœืžืฉืชืžืฉ ืฉื”ืงื•ื‘ืฅ ื ืžืฆื ื‘ืกืคืจื™ื™ื” ืฉืœื• ืชื”ื™ื” ื–ื›ื•ืช ื›ืชื™ื‘ื” ืœืงื•ื‘ืฅ ื–ื”.

ืื‘ืœ ืื ื™ืฉ ืœืš ื‘ืขื™ื•ืช ืขื ื–ื”, ืืชื” ืชืžื™ื“ ื™ื›ื•ืœ ืœื‘ื˜ืœ ืืช ื‘ื“ื™ืงืช ื”ื–ื›ื•ื™ื•ืช ื‘ืชืฆื•ืจื”:

StrictModes no

ืื’ื‘, ื‘ C:Program FilesOpenSSH ื™ืฉ 2 ืกืงืจื™ืคื˜ื™ื (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), ืฉืฆืจื™ื›ื™ื ืืš ืื™ื ื ื—ื™ื™ื‘ื™ื ืœืชืงืŸ ื–ื›ื•ื™ื•ืช, ืœืจื‘ื•ืช ืขื ืžืคืชื—ื•ืช_ืžื•ืจืฉื™ื, ืื‘ืœ ืžืฉื•ื ืžื” ื”ื ืœื ื ืจืฉืžื™ื.

ืืœ ืชืฉื›ื— ืœื”ืคืขื™ืœ ืžื—ื“ืฉ ืืช ื”ืฉื™ืจื•ืช sshd ืœืื—ืจ ืœื”ื—ื™ืœ ืืช ื”ืฉื™ื ื•ื™ื™ื.

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>

ื™ืชืจื•ื ื•ืช/ื—ืกืจื•ื ื•ืช ืกื•ื‘ื™ื™ืงื˜ื™ื‘ื™ื™ื.

ื™ืชืจื•ื ื•ืช:

  • ื’ื™ืฉื” ืกื˜ื ื“ืจื˜ื™ืช ืœื—ื™ื‘ื•ืจ ืœืฉืจืชื™ื.
    ื›ืืฉืจ ื™ืฉ ืžืขื˜ ืžื›ื•ื ื•ืช Windows, ื–ื” ืžืื•ื“ ืœื ื ื•ื— ื›ืืฉืจ:
    ืื– ื”ื ื” ืื ื—ื ื• ืขื•ื‘ืจื™ื ื“ืจืš ssh, ื•ื›ืืŸ ืื ื—ื ื• ืžืฉืชืžืฉื™ื ื‘-rdp,
    ื•ื‘ืื•ืคืŸ ื›ืœืœื™, ื”ืฉื™ื˜ื•ืช ื”ื˜ื•ื‘ื•ืช ื‘ื™ื•ืชืจ ืขื ื‘ืกื˜ื™ื•ื ื•ืช ื”ื™ื ืชื—ื™ืœื” ืžื ื”ืจืช ssh, ื•-RDP ื“ืจื›ื”.
  • ืงืœ ืœื”ื’ื“ืจื”
    ืื ื™ ื—ื•ืฉื‘ ืฉื–ื” ื‘ืจื•ืจ ืžืืœื™ื•.
  • ืžื”ื™ืจื•ืช ื—ื™ื‘ื•ืจ ื•ืขื‘ื•ื“ื” ืขื ืžื›ื•ื ื” ืžืจื•ื—ืงืช
    ืื™ืŸ ืžืขื˜ืคืช ื’ืจืคื™ืช, ื•ื—ื•ืกืš ื’ื ืžืฉืื‘ื™ ืฉืจืช ื•ื’ื ื›ืžื•ืช ื”ื ืชื•ื ื™ื ื”ืžื•ืขื‘ืจื™ื.

ื—ืกืจื•ื ื•ืช:

  • ืœื ืžื—ืœื™ืฃ ืœื—ืœื•ื˜ื™ืŸ ืืช RDP.
    ืœื ื”ื›ืœ ื ื™ืชืŸ ืœืขืฉื•ืช ืžื”ืงื•ื ืกื•ืœื”, ืื‘ื•ื™. ืื ื™ ืžืชื›ื•ื•ืŸ ืœืžืฆื‘ื™ื ืฉื‘ื”ื ื ื“ืจืฉ GUI.

ื—ื•ืžืจื™ื ื”ืžืฉืžืฉื™ื ื‘ืžืืžืจ:
ืงื™ืฉื•ืจ ืœืคืจื•ื™ืงื˜ ืขืฆืžื•
ืืคืฉืจื•ื™ื•ืช ื”ื”ืชืงื ื” ืžื•ืขืชืงื•ืช ืœืœื ื‘ื•ืฉื” ืžืกืžื›ื™ื Ansible.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”