Linux์ฒ˜๋Ÿผ SSH๋ฅผ ํ†ตํ•ด Windows์— ์—ฐ๊ฒฐ

์ €๋Š” ํ•ญ์ƒ Windows ์ปดํ“จํ„ฐ์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ๋‹ต๋‹ตํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋‹ˆ์š”, ์ €๋Š” Microsoft์™€ ๊ทธ ์ œํ’ˆ์˜ ๋ฐ˜๋Œ€์ž๋„ ์ง€์ง€์ž๋„ ์•„๋‹™๋‹ˆ๋‹ค. ๊ฐ ์ œํ’ˆ์€ ๊ณ ์œ ํ•œ ๋ชฉ์ ์„ ์œ„ํ•ด ์กด์žฌํ•˜์ง€๋งŒ ์ด๊ฒƒ์ด ๋ชฉ์ ์ด ์•„๋‹™๋‹ˆ๋‹ค.
Windows ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์€ ํ•ญ์ƒ ๊ทน๋„๋กœ ๊ณ ํ†ต์Šค๋Ÿฌ์› ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ด๋Ÿฌํ•œ ์—ฐ๊ฒฐ์€ ํ•œ ๊ณณ์„ ํ†ตํ•ด ๊ตฌ์„ฑ๋˜๊ฑฐ๋‚˜(Hello WinRM with HTTPS) ๋งค์šฐ ์•ˆ์ •์ ์œผ๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค(Hello RDP to Virtual Machines ํ•ด์™ธ).

๋”ฐ๋ผ์„œ ์šฐ์—ฐํžˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ ‘ํ•˜๊ฒŒ ๋œ ๊ฒƒ์€ Win32-OpenSSH, ๋‚˜๋Š” ๋‚ด ์„ค์ • ๊ฒฝํ—˜์„ ๊ณต์œ ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ด ๋„๊ตฌ๋Š” ๋ˆ„๊ตฐ๊ฐ€์˜ ์‹ ๊ฒฝ์„ ๋งŽ์ด ๋œ์–ด์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Linux์ฒ˜๋Ÿผ SSH๋ฅผ ํ†ตํ•ด Windows์— ์—ฐ๊ฒฐ

์„ค์น˜ ์˜ต์…˜:

  1. ์ˆ˜๋™์œผ๋กœ
  2. ๋ฅผ ํ†ตํ•ด ๊พธ๋Ÿฌ๋ฏธ ์ดˆ์ฝœ๋ฆฟ
  3. Ansible์„ ํ†ตํ•ด(์˜ˆ: ์—ญํ• ) jborean93.win_openssh

๋‹ค์Œ์œผ๋กœ ๋ชจ๋“  ๊ฒƒ์ด ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„๊ณผ ๋‹ค์†Œ ๋ช…ํ™•ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฒซ ๋ฒˆ์งธ ์š”์ ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด ํ”„๋กœ์ ํŠธ๋Š” ์•„์ง ๋ฒ ํƒ€ ๋‹จ๊ณ„์ด๋ฏ€๋กœ ํ”„๋กœ๋•์…˜์— ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๊ถŒ์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ํ˜„์žฌ ์ตœ์‹  ๋ฆด๋ฆฌ์Šค๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์‹ญ์‹œ์˜ค. 7.9.0.0p1-๋ฒ ํƒ€. 32๋น„ํŠธ ๋ฐ 64๋น„ํŠธ ์‹œ์Šคํ…œ์šฉ ๋ฒ„์ „์ด ๋ชจ๋‘ ์žˆ์Šต๋‹ˆ๋‹ค.

ํฌ์žฅ ํ’€๊ธฐ C:ํ”„๋กœ๊ทธ๋žจ ํŒŒ์ผOpenSSH
์˜ฌ๋ฐ”๋ฅธ ์ž‘๋™์„ ์œ„ํ•œ ํ•„์ˆ˜ ์‚ฌํ•ญ: ์‹œ์Šคํ…œ ๊ทธ๋ฆฌ๊ณ  ๊ด€๋ฆฌ์ž ๊ทธ๋ฃน.

์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค ์„ค์น˜ ์„ค์น˜-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

์„ค๋ช…: ์• ํ”Œ๋ฆฟ ์ƒˆ๋กœ์šด NetFirewallRule Windows Server 2012 ์ด์ƒ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ์‹œ์Šคํ…œ(๋˜๋Š” ๋ฐ์Šคํฌํ†ฑ)์—์„œ๋Š” ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

net start sshd

์‹œ์ž‘ ์‹œ ํ˜ธ์ŠคํŠธ ํ‚ค๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค(๋ˆ„๋ฝ๋œ ๊ฒฝ์šฐ). %ํ”„๋กœ๊ทธ๋žจ๋ฐ์ดํ„ฐ%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:ํ”„๋กœ๊ทธ๋žจ ํŒŒ์ผOpenSSH 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๊ฐ€ ํ•„์š”ํ•œ ์ƒํ™ฉ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ์‚ฌ์— ์‚ฌ์šฉ๋œ ์ž๋ฃŒ:
ํ”„๋กœ์ ํŠธ ์ž์ฒด์— ๋Œ€ํ•œ ๋งํฌ
์„ค์น˜ ์˜ต์…˜์€ ๋‹ค์Œ์—์„œ ๋ป”๋ป”ํ•˜๊ฒŒ ๋ณต์‚ฌ๋ฉ๋‹ˆ๋‹ค. ์•ค์„œ๋ธ” ๋ฌธ์„œ.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€