ssh into WSL2 & vs-code

programming

ssh into WSL2 & vs-code

์ƒ์„ฑ์ผ: 2022๋…„ 3์›” 2์ผ ์˜คํ›„ 11:30

๋ช‡ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ํ•˜๋‚˜๋Š” Windows ์ž์ฒด์˜ sshd ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ WSL ๋‚ด๋ถ€์˜ sshd ๋ฐ๋ชฌ์œผ๋กœ ํ„ฐ๋„๋ง ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด์žˆ๋‹ค.

Windows ์ž์ฒด์˜ sshd๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์ž

PC-A์—์„œ PC-B์˜ ์œˆ๋„์šฐ๋กœ ssh๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค

# Powershell as Administrator
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Set-Service -Name sshd -StartupType 'Automatic'

์ด์ œ ์™ธ๋ถ€์—์„œ ํ•ด๋‹น ์œˆ๋„์šฐ(PC-B)๋กœ ssh๋ฅผ ์—ฐ๊ฒฐํ•ด ๋“ค์–ด๊ฐ€๋ฉด ํŒŒ์›Œ์‰˜ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋งŒ๋‚  ์ˆ˜ ์žˆ๋‹ค.

๊ธฐ๋ณธ ์…ธ์„ ํŒŒ์›Œ์‰˜๋กœ ๋ณ€๊ฒฝ

https://www.lainyzine.com/ko/article/how-to-run-openssh-server-and-connect-with-ssh-on-windows-10/

์•„๋ž˜๋Š” powershell 7 ๊ธฐ์ค€ ๋ช…๋ น์–ด์ธ๋ฐ, ๋‹ค๋ฅธ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋‹ค์Œ MS ๋ฌธ์„œ ๋ฅผ ํ™•์ธํ•ด์„œ DefaultShell -Value ๊ฐ’์„ ์ˆ˜์ •ํ•˜์„ธ์š”

New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "$env:ProgramFiles\Powershell\7" -PropertyType String -Force

WSL๋กœ ์ž๋™์ž…์žฅ์ด ๋˜๊ฒŒ ๋งŒ๋“ค์–ด๋ณด์ž

์•„๋ž˜ ์ปค๋งจ๋“œ๋Š” ssh ์ž…์žฅ์‹œ ์‚ฌ์šฉํ•  ๊ธฐ๋ณธ์…ธ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. bash.exe ํŒŒ์ผ๋กœ ์„ค์ •ํ•ด ๋†“์•˜๊ณ , ์ด๋Š” ์œˆ๋„์šฐ๊ฐ€ ์•”์‹œ์ ์œผ๋กœ wsl์„ ํ˜ธ์ถœํ•˜๊ธฐ ๋•Œ๋ฌธ์— ssh๋ฅผ ํ†ตํ•ด WSL ๋ฐฐ์‹œ ์…ธ๋กœ ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค.

New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\WINDOWS\System32\bash.exe" -PropertyType String -Force

ํ•˜์ง€๋งŒ ๋‚˜๋Š” ์š•์‹ฌ์„ ๋‚ด์–ด ํŒŒ์›Œ์…ธ๊นŒ์ง€ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. shutdown๋„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ง์ด๋‹ค! ๊ทธ๋ž˜์„œ ํ•ด๋‹น ํ”„๋กœํผํ‹ฐ๋ฅผ ๋‹ค์‹œ ์‚ญ์ œํ–ˆ๋‹ค.

Remove-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" - Name DefaultShell

Problem shooting: WSL์˜ Microsoft Store ์ถœ์‹œ์™€ ๊ด€ํ•œ ๋ฌธ์ œ

Cannot run WSL2 over SSH on Windows 11

MS Store์— WSL์ด ์˜ฌ๋ผ์™”๊ธฐ์— ๋‚˜๋Š” ํŒ์˜ฌ๋ฆผ์„ ํ•œ ์ ์ด ์žˆ๋‹ค. ๊ทธ ๋’ค๋กœ ssh ์—ฐ๊ฒฐ์„ wsl๋กœ ํ•  ์ˆ˜๊ฐ€ ์—†์—ˆ๋Š”๋ฐ, ์•„์ง ํ•ด๊ฒฐ๋˜์ง€ ๋ชปํ•œ ์ด์Šˆ์˜€๋‹ค๊ณ  ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ MS Store์— ์„ค์น˜๋˜์–ด์žˆ๋˜ WSL์„ ์ง€์šฐ์ž ์—ฐ๊ฒฐ์ด ๊ฐ€๋Šฅํ•ด์กŒ๋‹ค.

VS Code์— ssh๋กœ ์›๊ฒฉ์ ‘์†ํ•˜๊ธฐ

Developing on Remote Machines using SSH and Visual Studio Code

ํ•˜๋ผ๋Š” ๋Œ€๋กœ ํ–ˆ๋Š”๋ฐ๋„ ์•ˆ ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ์‹ฌ์ง€์–ด vs-code๋„ ์‚ญ์ œํ•˜๊ณ  vs-code-server๋„ ์ „๋ถ€ ์‚ญ์ œํ•ด๋ดค๊ณ  ์ปดํ“จํ„ฐ๋„ ๋‹ค์‹œ์‹œ์ž‘ ํ–ˆ๋Š”๋ฐ๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์—ฐ๊ฒฐ์ด ์•ˆ ๋˜์—ˆ๋‹ค.

Vscode cannot connect to remote Linux ๏ผˆ_WebSocket close with status code 1006๏ผ‰

๊ทธ๋Ÿฐ๋ฐ ์ด์œ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ wsl --shutdown ์„ ์‚ฌ์šฉํ•ด ๋ฆฌ๋ˆ…์Šค๋ฅผ ์ข…๋ฃŒ์‹œํ‚จ ๋’ค์— ๋‹ค์‹œ ์ผœ๋‹ˆ๊นŒ ๋œ๋‹ค. ๋ญ์ง€

Vs Code์— Remote Tunnel๋กœ ์›๊ฒฉ ์ ‘์†ํ•˜๊ธฐ

Remote Tunnels

ssh ์—ฐ๊ฒฐ ์—†์ด ๊นƒํ—ˆ๋ธŒ ๊ณ„์ •๋งŒ์œผ๋กœ ์›๊ฒฉ vs-code ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ์ฉŒ๋Š” ๊ธฐ๋Šฅ์ด ์–ธ์ œ๋ชจ๋ฅด๊ฒŒ ์ถœ์‹œํ–ˆ๋‹ค. ์›น์œผ๋กœ๋„ ์—ฐ๊ฒฐ์ด ๊ฐ€๋Šฅํ•ด ์•„์ดํŒจ๋“œ๋กœ๋„ ์‰ฝ๊ฒŒ ๋ฐ์Šคํฌํ†ฑ ์ž์›์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์‚ฌ์šฉํ•ด๋ดค์œผ๋‚˜ ์น˜๋ช…์ ์ธ ๋‹จ์ ์ด ์กด์žฌํ•œ๋‹ค.

  1. ์›๊ฒฉ์œผ๋กœ ์ปดํ“จํ„ฐ๋ฅผ ์ผฐ์„ ๋•Œ vs-code๊ฐ€ ์‹คํ–‰์ด ๋œ ์ƒํƒœ๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ๋ฆฌ๋ชจํŠธ ํ„ฐ๋„๋ง์ด ์•ˆ๋œ๋‹ค. โ‡’ ๋ฌผ๋ก  RDP๋กœ ๋“ค์–ด๊ฐ€ ์ž„์˜๋กœ ์‹คํ–‰์‹œ์ผœ์ฃผ๋ฉด ๊ฐ€๋Šฅํ•˜๊ธฐ๋Š” ํ•˜์ง€๋งŒโ€ฆ ๋„ˆ๋ฌด ๋ฒˆ์žก์Šค๋Ÿฝ์ž–์•„.

    2023-03-13T17:53:04 ์ˆ˜์ •: code tunnel service install ํ•˜๋ฉด ๋œ๋‹ค. ์•ž์œผ๋กœ ์ปดํ“จํ„ฐ๋ฅผ ์›๊ฒฉ์œผ๋กœ ์ผœ๊ธฐ๋งŒ ํ•˜๋ฉด ssh ์—ฐ๊ฒฐ ์—†์ด ๋ฐ”๋กœ ์›๊ฒฉ์ ‘์†์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

[์ˆ˜์ •] ssh๋กœ ์—ฐ๊ฒฐ๋œ ์ƒํƒœ์—์„œ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์น˜๋ฉด remote tunnel์„ ์—ด์–ด์ค€๋‹ค!

code tunnel
*
* Visual Studio Code Server
*
* By using the software, you agree to
* the Visual Studio Code Server License Terms (https://aka.ms/vscode-server-license) and
* the Microsoft Privacy Statement (https://privacy.microsoft.com/en-US/privacystatement).
*
To grant access to the server, please log into https://github.com/login/device and use code AAAA-AAAA

์นœ์ ˆํ•œ ์„ค๋ช…์„œ๋Œ€๋กœ ํ•ด๋‹น ๋งํฌ๋กœ ๋“ค์–ด๊ฐ€ ๋กœ๊ทธ์ธ์„ ํ•˜๊ฒŒ ๋˜๋ฉด cli ์ƒ์—์„œ ๋งํฌ๋ฅผ ํ•˜๋‚˜ ๋” ์ค€๋‹ค. ๊ทธ ๋งํฌ๋ฅผ ํƒ€๊ณ  ๋“ค์–ด๊ฐ€๋ฉด ๋ณธ๊ฒฉ์ ์œผ๋กœ ์›น์—์„œ vs-code๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.
httpsvscode.devtunnelWheatleyCUserschltmworkspaceAlgorithmsWithJava.png

ํ•œ ๋ฒˆ ํ„ฐ๋„์„ ์˜คํ”ˆํ•œ ์ƒํƒœ์—์„œ ๋‚˜๋Š” ์–ด๋Š ์›น ๋ธŒ๋ผ์šฐ์ €๋กœ ๋“ค์–ด๊ฐ€๋„ vscode.dev ์‚ฌ์ดํŠธ๋ฅผ ๋“ค์–ด๊ฐ€ ๊นƒํ—ˆ๋ธŒ๋กœ ๋กœ๊ทธ์ธ ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ์–ธ์ œ๋“ ์ง€ ์›๊ฒฉ ์ ‘์†์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐœ์ฉ๋‹ค.

WSL2๋ฅผ ์™ธ๋ถ€ SSH์— ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ํฌํŠธํฌ์›Œ๋”ฉ ์ž๋™ํ™” Powershell script (scrap)

WSLv2๋ฅผ ์™ธ๋ถ€ SSH ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ํฌํŠธํฌ์›Œ๋”ฉ ์ž๋™ํ™” Powershell script

Windows์— ssh key ์ถ”๊ฐ€ํ•˜๊ธฐ

$env:ProgramData ๋˜๋Š” %ProgramData% ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์•ˆ์— ์žˆ๋Š” ssh\administrators_authorized_keys ํŒŒ์ผ์— ํผ๋ธ”๋ฆญ ํ‚ค์˜ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•˜์—ฌ์•ผ ํ•œ๋‹ค. $env:Home\ssh\authorized_keys๋ฅผ ์ˆ˜์ •ํ•œ๋‹ค๊ณ  ์ ์šฉ์ด ๋˜์ง€ ์•Š์•„ ๊ณ ์ƒํ–ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•œ ๋’ค๋กœ๋Š” ๊ผญ Restart-Service sshd๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ๋ชฌ์„ ์žฌ์‹œ์ž‘ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

wsl์—์„œ update.code.visualstudio.com์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค๋Š”๋ฐ?

์—๋Ÿฌ๋ฉ”์‹œ์ง€๋ฅผ ์š”์•ฝํ•˜์ž๋ฉด...

๋„ˆ ์ง€๊ธˆ update.code.visualstudio.com์— ์ ‘๊ทผํ•  ๊ถŒํ•œ์ด ์—†์œผ๋‹ˆ๊นŒ vscode-server-linux-x64.tar.gz ํŒŒ์ผ์„ ๋‹ค์šด๋ฐ›์„ ์ˆ˜ ์—†์–ด

code 
Updating VS Code Server to version 6445d93c81ebe42c4cbd7a60712e0b17d9463e97
Removing previous installation...
Installing VS Code Server for x64 (6445d93c81ebe42c4cbd7a60712e0b17d9463e97)
Downloading: 100%
Failed
--2023-08-21 10:53:55--  https://update.code.visualstudio.com/commit:6445d93c81ebe42c4cbd7a60712e0b17d9463e97/server-linux-x64/stable
Resolving update.code.visualstudio.com (update.code.visualstudio.com)... 13.107.246.74, 13.107.213.74, 2620:1ec:bdf::74, ...
Connecting to update.code.visualstudio.com (update.code.visualstudio.com)|13.107.246.74|:443... connected.
ERROR: cannot verify update.code.visualstudio.com's certificate, issued by โ€˜CN=Microsoft Azure TLS Issuing CA 05,O=Microsoft Corporation,C=USโ€™:
  Unable to locally verify the issuer's authority.
To connect to update.code.visualstudio.com insecurely, use `--no-check-certificate'.
ERROR: Failed to download https://update.code.visualstudio.com/commit:6445d93c81ebe42c4cbd7a60712e0b17d9463e97/server-linux-x64/stable to /home/chltm/.vscode-server/bin/6445d93c81ebe42c4cbd7a60712e0b17d9463e97-1692582835.tar.gz
Please install missing certificates.
Debian/Ubuntu:  sudo apt-get install ca-certificates

ํ•ด๊ฒฐ!!!!! ๋ฟŒ์™€์•…!!! ์•„๋ž˜ ๋Œ€ํ™”์˜ ๋‹ต๋ณ€์—์„œ ํ•ด๋‹ต์ด ์žˆ๋‹ค. ๊ฒฐ๊ตญ์€ ํŒŒ์ผ์„ ์ง์ ‘ ๋‹ค์šด๋ฐ›์„ ์ˆ˜ ์—†์œผ๋‹ˆ๊นŒ ์šฐ๋ฆฌ๊ฐ€ ์ง์ ‘ ๊ฝ‚์•„๋„ฃ์–ด์ฃผ๋ฉด ๋˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ์ด๋•Œ ์ค‘์š”ํ•œ ๊ฑด $COMMIT_ID๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•ํ•˜๊ณ  ๋‹ค์šด๋ฐ›์€ ํŒŒ์ผ์„ ์••์ถ•ํ•ด์ œํ•œ ๋’ค์— --strip-components 1 ์˜ต์…˜์„ ์ฃผ์–ด ๋ฐ”๋กœ ๊ทธ ํด๋”์— ๋‹ด์•„์•ผ ํ•˜์ง€ ์•„๋ฌด ์˜ต์…˜๋„ ์ฃผ์ง€ ์•Š์œผ๋ฉด ํด๋”๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ทธ ์•ˆ์— ๋‹ด์•„์ฃผ๋ฏ€๋กœ ๋‘˜์˜ ์ฐจ์ด ๊ทธ๊ฑฐ ๋ช…์‹ฌํ•˜์ž.

remote ssh in vscode on a target machine that only allows inbound ssh connections {sof}

๋ฌผ๋ก  ์–ธ์  ๊ฐ„ ์ € ca-certificates ๊ด€๋ จ ๋ฌธ์ œ๊ฐ€ ๋‹ค์‹œ ์ฐพ์•„์˜ฌ ๊ฒƒ์ด๊ณ , vscode-server ์—…๋ฐ์ดํŠธ๊ฐ€ ๋ง‰ํ˜€ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์ฐพ์•„์˜ค๋ฆฌ๋ž€ ์‚ฌ์‹ค์€ ๋ณ€์น˜ ์•Š์„ ๊ฒƒ์ด๋‹ค. ์ง€๊ธˆ๋„ code ๋ช…๋ น์–ด๋ฅผ ์น˜๋ฉด ํ”„๋กœ์„ธ์Šค๊ฐ€ ์Šคํฐ๋˜์ง€ ์•Š๊ณ  ์—๋Ÿฌ๋ฉ”์‹œ์ง€๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.

๊ทธ๋ž˜์„œ ๊ทธ๋ƒฅ ๊ธฐ๋ณธ์œผ๋กœ ๊น”๋ ค์žˆ๋˜ wget์„ ์ง€์šฐ๊ณ  brew๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์‹ ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๋‹ˆ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค!