[์ ์] ์๊ฒฉ ๊ฐ๋ฐ์์ ๋น๋ฐ๋ฒํธ ์์ด ์ ์ํ๊ธฐ (SSH/VSCODE ์๊ฒฉ ์ ์)
์๋ณธ ๊ฒ์๊ธ: https://velog.io/@euisuk-chung/์๊ฒฉ์์-๋น๋ฐ๋ฒํธ-์์ด-์ ์ํ๊ธฐ
๋งค๋ฒ ๋ฆฌ๋ ์ค ์๋ฒ์ ์ ์ํ ๋๋ง๋ค ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ๋ ๊ฒ์ ์๊ฐ๋ณด๋ค ํฐ ์คํธ๋ ์ค์ ๋๋ค. ํนํ VS Code๋ก ์๊ฒฉ ๊ฐ๋ฐ์ ํ๋ฉด์ ํ๋ฃจ์๋ ์์ญ ๋ฒ์ฉ ์ฌ์ ์ํด์ผ ํ๋ ์ํฉ์ด๋ผ๋ฉด ๋๋์ฑ ๊ทธ๋ ์ฃ . ์ด๋ฒ ํฌ์คํ ์์๋ Windows ๋ก์ปฌ ํ๊ฒฝ์์ Linux ์๊ฒฉ ์๋ฒ๋ก SSH Key ์ธ์ฆ์ ์ค์ ํ์ฌ, ๋น๋ฐ๋ฒํธ ์์ด ์์ ํ๊ณ ํธ๋ฆฌํ๊ฒ ์๋ ๋ก๊ทธ์ธํ๋ ๋ฐฉ๋ฒ์ ๋จ๊ณ๋ณ๋ก ์์ธํ ์ ๋ฆฌํ์ต๋๋ค.
๋ชฉ์ฐจ
- SSH Key ์ธ์ฆ์ ์ดํด
- SSH Key๊ฐ ํ์ํ ์ด์
- ์ค๋ฌด ํต์ฌ ๊ฐ์ด๋๋ผ์ธ
- Windows์์ SSH Key ์์ฑํ๊ธฐ
- Linux ์๋ฒ์ ๊ณต๊ฐํค ๋ฑ๋กํ๊ธฐ
- VS Code Remote-SSH ์ค์ ํ๊ธฐ
- Passphrase์ SSH Agent ํ์ฉํ๊ธฐ
- ํธ๋ฌ๋ธ์ํ ๊ฐ์ด๋
- ์ ์ฒด ํ๋ก์ธ์ค ์์ฝ
-
SSH Key ์ธ์ฆ์ ์ดํด
SSH Key์ ๊ธฐ๋ณธ ์๋ฆฌ
SSH Key ์ธ์ฆ์ ๋น๋ฐ๋ฒํธ ๋์ ์ํธํ ํค ์์ผ๋ก ์ ์์ ํ์ธํ๋ ๋ฐฉ์์ ๋๋ค. ์ด๋ ๋น๋์นญ ์ํธํ(Asymmetric Cryptography) ๊ธฐ์ ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ๋ ๊ฐ์ ์ํ์ ์ผ๋ก ์ฐ๊ฒฐ๋ ํค๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
๊ตฌ์ฑ ์์:
-
Private Key (๋น๋ฐํค)
- ํ์ผ๋ช
์์:
id_rsa
,id_ed25519
- ์ ์ฅ ์์น: ํด๋ผ์ด์ธํธ(Windows PC)์
C:\Users\<์ฌ์ฉ์๋ช >\.ssh\
- ํน์ง: ์ ๋ ์ธ๋ถ์ ์ ์ถ๋์ด์๋ ์ ๋๋ ๊ฐ์ธ ์์ ํค
- ์ญํ : ์๋ฒ์ ๋ํ ์ธ์ฆ ์์ฒญ ์ ๋์งํธ ์๋ช ์์ฑ
- ํ์ผ๋ช
์์:
-
Public Key (๊ณต๊ฐํค)
- ํ์ผ๋ช
์์:
id_rsa.pub
,id_ed25519.pub
- ์ ์ฅ ์์น: ์๋ฒ(Linux)์
~/.ssh/authorized_keys
ํ์ผ ๋ด๋ถ - ํน์ง: ๊ณต๊ฐ๋์ด๋ ์์ ํ๋ฉฐ, ์ฌ๋ฌ ์๋ฒ์ ๋ณต์ฌ ๊ฐ๋ฅ
- ์ญํ : ํด๋ผ์ด์ธํธ์ ๋น๋ฐํค๋ก ์์ฑ๋ ์๋ช ์ ๊ฒ์ฆ
- ํ์ผ๋ช
์์:
์ธ์ฆ ํ๋ก์ธ์ค
https://www.adsmurai.com/en/articles/how-to-generate-secure-ssh-keys
- ์ ์ ์๋: ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ SSH ์ฐ๊ฒฐ ์์ฒญ
- ๊ณต๊ฐํค ํ์ธ: ์๋ฒ๊ฐ
authorized_keys
์์ ํด๋น ์ฌ์ฉ์์ ๊ณต๊ฐํค ๊ฒ์ - ์ฑ๋ฆฐ์ง ๋ฐ์ก: ์๋ฒ๊ฐ ๋ฌด์์ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ์ฌ ํด๋ผ์ด์ธํธ์๊ฒ ์ ์ก
- ์๋ช ์์ฑ: ํด๋ผ์ด์ธํธ๊ฐ ๋น๋ฐํค๋ก ํด๋น ๋ฐ์ดํฐ์ ๋์งํธ ์๋ช
- ์๋ช ๊ฒ์ฆ: ์๋ฒ๊ฐ ๊ณต๊ฐํค๋ก ์๋ช ์ ๊ฒ์ฆํ์ฌ ์ธ์ฆ ์๋ฃ
์ด ๋ฐฉ์์ ์ค๊ฐ์ ๊ณต๊ฒฉ(Man-in-the-Middle Attack)์ ๊ฐํ๊ณ , ๋ฌด์ฐจ๋ณ ๋์ ๊ณต๊ฒฉ(Brute Force)์ผ๋ก๋ถํฐ๋ ์์ ํฉ๋๋ค.
-
SSH Key๊ฐ ํ์ํ ์ด์
๋ณด์์ฑ ์ธก๋ฉด
๊ฐ๋ ฅํ ์ํธํ ๊ฐ๋
- ํ๋์ SSH Key ์๊ณ ๋ฆฌ์ฆ(ํนํ Ed25519)์ ์ํ์ ์ผ๋ก ํด๋ ์ด ๊ฑฐ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค
- 4096bit RSA ํค๋ ํ์ฌ ๊ธฐ์ ๋ก ํด๋ ํ๋ ๋ฐ ์๋ฐฑ ๋ ์ด ์์๋ฉ๋๋ค
- ๋น๋ฐ๋ฒํธ๋ ์ฌ์ ๊ณต๊ฒฉ, ๋ฌด์ฐจ๋ณ ๋์ ๊ณต๊ฒฉ์ ์ทจ์ฝํ์ง๋ง ํค๋ ์ฌ์ค์ ๋ฉด์ญ์ ๋๋ค
ํผ์ฑ ๋ฐฉ์ง
- ๋น๋ฐ๋ฒํธ๋ ์ฌ์ฉ์๊ฐ ์ง์ ์ ๋ ฅํ๋ฏ๋ก ํค๋ก๊ฑฐ๋ ํผ์ฑ ์ฌ์ดํธ์ ๋ ธ์ถ๋ ์ ์์ต๋๋ค
- SSH Key๋ ํ์ผ ํํ๋ก ์กด์ฌํ๋ฏ๋ก ๋ฌผ๋ฆฌ์ ์ผ๋ก ํ์ทจํ์ง ์๋ ํ ์์ ํฉ๋๋ค
ํธ์์ฑ ์ธก๋ฉด
์๋ํ ์นํ์
- CI/CD ํ์ดํ๋ผ์ธ, ๋ฐฐํฌ ์คํฌ๋ฆฝํธ ๋ฑ์์ ๋น๋ฐ๋ฒํธ ์ ๋ ฅ ์์ด ์๋ ์คํ ๊ฐ๋ฅ
- ์ฌ๋ฌ ์๋ฒ์ ๋์ผํ ๊ณต๊ฐํค๋ฅผ ๋ฐฐํฌํ์ฌ ํ๋์ ๋น๋ฐํค๋ก ๋ชจ๋ ์ ๊ทผ ๊ฐ๋ฅ
๊ฐ๋ฐ ์์ฐ์ฑ ํฅ์
- VS Code Remote-SSH๋ก ์์ ์ ์ฌ์ ์ ์๋ง๋ค ๋น๋ฐ๋ฒํธ ์ ๋ ฅ ๋ถํ์
- Git ์์ , ์๋ฒ ๊ฐ ํ์ผ ์ ์ก(scp, rsync) ๋ฑ์ด ๋งค๋๋ฝ๊ฒ ์งํ๋ฉ๋๋ค
๊ด๋ฆฌ ์ฉ์ด์ฑ
์ธ๋ฐํ ์ ๊ทผ ์ ์ด
- ํ๋ก์ ํธ๋ณ, ํ์๋ณ๋ก ๋ค๋ฅธ ํค๋ฅผ ๋ฐ๊ธํ์ฌ ๊ถํ ๋ถ๋ฆฌ ๊ฐ๋ฅ
- ํน์ ํค๊ฐ ์ ์ถ๋์์ ๋ ํด๋น ๊ณต๊ฐํค๋ง ์๋ฒ์์ ์ ๊ฑฐํ๋ฉด ์ฆ์ ์ ๊ทผ ์ฐจ๋จ
-
์ค๋ฌด ํต์ฌ ๊ฐ์ด๋๋ผ์ธ
์๊ณ ๋ฆฌ์ฆ ์ ํ ๊ธฐ์ค
Ed25519 (๊ถ์ฅ)
- ์์ฑ ์๋๊ฐ ๋น ๋ฅด๊ณ ํค ๊ธธ์ด๊ฐ ์งง์ผ๋ฉด์๋ ๋ณด์์ฑ์ด ๋ฐ์ด๋จ
- ํ๋ ์ํธํ ํ์ค์ ๋ถํฉํ๋ฉฐ, ๋๋ถ๋ถ์ ์ต์ ์์คํ ์์ ์ง์
- ๊ณ ์ ๊ธธ์ด(256bit)๋ก
-b
์ต์ ๋ถํ์
1
2
# Ed25519 ํค ์์ฑ (๊ถ์ฅ)
ssh-keygen -t ed25519 -C "your_email@example.com"
RSA 4096bit (ํธํ์ฑ ์ฐ์ ์)
- ๋ ๊ฑฐ์ ์์คํ ์ด๋ ์ค๋๋ ์๋ฒ์์ ํธํ์ฑ์ด ํ์ํ ๊ฒฝ์ฐ
- ๊ธฐ๋ณธ๊ฐ(2048bit)๋ณด๋ค ์์ ํ 4096bit ์ฌ์ฉ ๊ถ์ฅ
1
2
# RSA 4096bit ํค ์์ฑ
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
RSA -b
์ต์
์ ์๋ฏธ
-b
๋ ๋นํธ(bit) ๊ธธ์ด๋ฅผ ์ง์ ํ๋ ์ต์ ์ ๋๋ค- RSA ํค๋ ๋ด๋ถ์ ์ผ๋ก ํฐ ์์(prime number)์ ๊ณฑ์ผ๋ก ๋ง๋ค์ด์ง๋ฉฐ, ์ด ์ซ์์ ํฌ๊ธฐ๋ฅผ ๋นํธ๋ก ํํํฉ๋๋ค
- ๊ธธ์๋ก ์์ ํ์ง๋ง ์ฐ์ฐ ๋น์ฉ์ด ์ฆ๊ฐํฉ๋๋ค
ํค ๊ธธ์ด | ๋ณด์ ์์ค | ๊ถ์ฅ ์ฌํญ |
---|---|---|
2048bit | ๊ธฐ๋ณธ | ์ต์ ์๊ตฌ์ฌํญ |
4096bit | ๊ฐํ | ๊ถ์ฅ ์ค์ |
8192bit | ๋งค์ฐ ๊ฐํจ | ๊ณผ๋ํจ (์ฑ๋ฅ ์ ํ) |
๋ณด์ ๊ฐํ ์์น
Passphrase ์ฌ์ฉ
- ๋น๋ฐํค ํ์ผ ์์ฒด๋ฅผ ์ํธํํ๋ ์ถ๊ฐ ๋ณดํธ์ธต
- ๋น๋ฐํค๊ฐ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ ์ถ๋์ด๋ passphrase ์์ด๋ ์ฌ์ฉ ๋ถ๊ฐ
- SSH Agent์ ํจ๊ป ์ฌ์ฉํ๋ฉด ํธ์์ฑ ์ ์ง ๊ฐ๋ฅ
์๊ฒฉํ ํ์ผ ๊ถํ
๊ฒฝ๋ก/ํ์ผ | Windows | Linux | ์ค๋ช |
---|---|---|---|
.ssh ๋๋ ํ ๋ฆฌ |
ํ์ฌ ์ฌ์ฉ์๋ง | 700 |
์์ ์๋ง ์ฝ๊ธฐ/์ฐ๊ธฐ/์คํ |
๋น๋ฐํค ํ์ผ | ํ์ฌ ์ฌ์ฉ์๋ง | 600 |
์์ ์๋ง ์ฝ๊ธฐ/์ฐ๊ธฐ |
๊ณต๊ฐํค ํ์ผ | ์ ํ ์์ | 644 |
๋ชจ๋ ์ฝ๊ธฐ, ์์ ์๋ง ์ฐ๊ธฐ |
authorized_keys |
- | 600 |
์์ ์๋ง ์ฝ๊ธฐ/์ฐ๊ธฐ |
ํค ๊ฒฉ๋ฆฌ ์ ๋ต
- ๊ฐ์ธ์ฉ, ํ์ฌ์ฉ, ํ๋ก์ ํธ์ฉ ๋ฑ ์ฉ๋๋ณ๋ก ๋ณ๋ ํค ์์ฑ
~/.ssh/config
์์ ํธ์คํธ๋ณ๋ก ๋ค๋ฅธ ํค ์ง์ ๊ฐ๋ฅ
-
Windows์์ SSH Key ์์ฑํ๊ธฐ
์ฌ์ ์ค๋น์ฌํญ
OpenSSH ํด๋ผ์ด์ธํธ ํ์ธ
Windows 10(1809 ์ด์) ๋ฐ Windows 11์๋ OpenSSH ํด๋ผ์ด์ธํธ๊ฐ ๊ธฐ๋ณธ ๋ด์ฅ๋์ด ์์ต๋๋ค. PowerShell์์ ํ์ธ:
1
2
3
4
5
6
# OpenSSH ์ค์น ํ์ธ
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Client*'
# ์ถ๋ ฅ ์์:
# Name : OpenSSH.Client~~~~0.0.1.0
# State : Installed
๋ง์ฝ ์ค์น๋์ง ์์๋ค๋ฉด:
1
2
# OpenSSH ํด๋ผ์ด์ธํธ ์ค์น
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
ํค ์์ฑ ํ๋ก์ธ์ค
Step 1: PowerShell ์คํ
Win + X
โ โWindows PowerShellโ ๋๋ โํฐ๋ฏธ๋โ ์ ํ- ๊ด๋ฆฌ์ ๊ถํ ๋ถํ์ (์ผ๋ฐ ์ฌ์ฉ์ ๊ถํ์ผ๋ก ์คํ)
Step 2: ํค ์์ฑ ๋ช ๋ น ์คํ
1
2
# Ed25519 ํค ์์ฑ (๊ถ์ฅ)
ssh-keygen -t ed25519 -C "myemail@company.com"
๋๋ RSA ์ฌ์ฉ ์:
1
2
# RSA 4096bit ํค ์์ฑ
ssh-keygen -t rsa -b 4096 -C "myemail@company.com"
์ต์ ์ค๋ช :
-t
: ํค ํ์ ์ง์ (ed25519 ๋๋ rsa)-b
: ๋นํธ ๊ธธ์ด (RSA๋ง ํด๋น, Ed25519๋ ๊ณ ์ 256bit)-C
: ์ฃผ์(Comment) ์ถ๊ฐ - ๋ณดํต ์ด๋ฉ์ผ ์ฃผ์๋ ์ค๋ช ์ ๋ ฅ
Step 3: ๋ํํ ํ๋กฌํํธ ์๋ต
1
2
Generating public/private ed25519 key pair.
Enter file in which to save the key (C:\Users\YourName/.ssh/id_ed25519):
- ํ์ผ ์ ์ฅ ์์น: ๊ทธ๋ฅ Enter (๊ธฐ๋ณธ ๊ฒฝ๋ก ์ฌ์ฉ)
- Ed25519:
C:\Users\<์ฌ์ฉ์๋ช >\.ssh\id_ed25519
- RSA:
C:\Users\<์ฌ์ฉ์๋ช >\.ssh\id_rsa
- Ed25519:
1
Enter passphrase (empty for no passphrase):
- Passphrase ์
๋ ฅ:
- ๋ณด์ ๊ฐํ๋ฅผ ์ํ๋ฉด ๊ฐ๋ ฅํ ์ํธ ์ ๋ ฅ (์ต์ 12์ ์ด์ ๊ถ์ฅ)
- ํธ์์ฑ ์ฐ์ ์ด๋ฉด ๊ทธ๋ฅ Enter (๋น์๋ )
- ๊ถ์ฅ: Passphrase ์ค์ + SSH Agent ์ฌ์ฉ
1
Enter same passphrase again:
- ๋์ผํ passphrase ์ฌ์ ๋ ฅ
Step 4: ์์ฑ ์๋ฃ ํ์ธ
1
2
3
4
5
6
7
8
9
10
Your identification has been saved in C:\Users\YourName/.ssh/id_ed25519.
Your public key has been saved in C:\Users\YourName/.ssh/id_ed25519.pub.
The key fingerprint is:
SHA256:abcd1234... myemail@company.com
The key's randomart image is:
+--[ED25519 256]--+
| .o+ |
| . =.o |
| = B + |
...
์์ฑ๋ ํ์ผ ํ์ธ:
1
2
3
4
5
6
7
8
# .ssh ๋๋ ํ ๋ฆฌ ๋ด์ฉ ํ์ธ
dir $env:USERPROFILE\.ssh
# ์ถ๋ ฅ ์์:
# Mode LastWriteTime Length Name
# ---- ------------- ------ ----
# -a--- 2025-10-01 ์ค์ 9:30 464 id_ed25519
# -a--- 2025-10-01 ์ค์ 9:30 103 id_ed25519.pub
์ฃผ์(Comment) ์์ด ์์ฑํ๊ธฐ
์ฃผ์์ด ํ์ ์๊ฑฐ๋ ๋์ค์ ์ถ๊ฐํ๊ณ ์ถ๋ค๋ฉด -C
์ต์
์๋ต:
1
ssh-keygen -t ed25519
์ด ๊ฒฝ์ฐ ๊ณต๊ฐํค ๋ง์ง๋ง์ ์ฃผ์์ด ๋ถ์ง ์๊ฑฐ๋ Windows ์ฌ์ฉ์๋ช ์ด ์๋์ผ๋ก ํ์๋ฉ๋๋ค.
-
Linux ์๋ฒ์ ๊ณต๊ฐํค ๋ฑ๋กํ๊ธฐ
๊ณต๊ฐํค ๋ด์ฉ ํ์ธ
Windows PowerShell์์ ๊ณต๊ฐํค ๋ด์ฉ์ ํ์ธํฉ๋๋ค:
1
2
3
4
5
# Ed25519 ๊ณต๊ฐํค ๋ด์ฉ ์ถ๋ ฅ
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub
# RSA ์ฌ์ฉ ์
Get-Content $env:USERPROFILE\.ssh\id_rsa.pub
์ถ๋ ฅ ์์:
1
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJqL9Zv8... myemail@company.com
์ด ์ ์ฒด ๋ฌธ์์ด์ ๋ณต์ฌํฉ๋๋ค (Ctrl+C).
Linux ์๋ฒ์์ ๋ฑ๋ก ์์
๋ฐฉ๋ฒ 1: ๊ธฐ์กด ๋น๋ฐ๋ฒํธ๋ก SSH ์ ์ ํ ๋ฑ๋ก
Windows PowerShell์์:
1
2
# Linux ์๋ฒ์ ์ ์ (๋น๋ฐ๋ฒํธ ์
๋ ฅ ํ์)
ssh ubuntu@192.168.1.100
Linux ์๋ฒ ํฐ๋ฏธ๋์์:
1
2
3
4
5
6
7
8
# .ssh ๋๋ ํ ๋ฆฌ ์์ฑ (์ด๋ฏธ ์์ผ๋ฉด ๋ฌด์๋จ)
mkdir -p ~/.ssh
# ๋๋ ํ ๋ฆฌ ๊ถํ ์ค์
chmod 700 ~/.ssh
# authorized_keys ํ์ผ์ ๊ณต๊ฐํค ์ถ๊ฐ
cat >> ~/.ssh/authorized_keys
์ด์ ์ปค์๊ฐ ์ ๋ ฅ ๋๊ธฐ ์ํ๋ก ๋ณํฉ๋๋ค.
- Windows์์ ๋ณต์ฌํ ๊ณต๊ฐํค๋ฅผ ๋ถ์ฌ๋ฃ๊ธฐ (์ฐํด๋ฆญ ๋๋ Shift+Insert)
- Enter ํ ๋ฒ
Ctrl + D
๋๋ฌ ์ ๋ ฅ ์ข ๋ฃ
1
2
3
4
5
# ํ์ผ ๊ถํ ์ค์
chmod 600 ~/.ssh/authorized_keys
# ๋ด์ฉ ํ์ธ
cat ~/.ssh/authorized_keys
๋ฐฉ๋ฒ 2: ์๊ฒฉ ๋ช ๋ น์ผ๋ก ํ ๋ฒ์ ์ฒ๋ฆฌ
Windows PowerShell์์ ํ ์ค๋ก ์คํ:
1
2
# ๊ณต๊ฐํค๋ฅผ ์๋ฒ๋ก ์ ์กํ์ฌ ๋ฑ๋ก
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh ubuntu@192.168.1.100 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
์ด ๋ช ๋ น์:
- ๋ก์ปฌ์ ๊ณต๊ฐํค ๋ด์ฉ์ ์ฝ์ด์
- SSH๋ก ์๋ฒ์ ์ ์กํ๋ฉฐ
- ์๋ฒ์์
.ssh
๋๋ ํ ๋ฆฌ ์์ฑ, ๊ถํ ์ค์ , ๊ณต๊ฐํค ์ถ๊ฐ๋ฅผ ์๋ ์ํํฉ๋๋ค
๋ฐฉ๋ฒ 3: SCP๋ก ํ์ผ ์ ์ก ํ ์ถ๊ฐ
1
2
# ๊ณต๊ฐํค ํ์ผ์ ์๋ฒ๋ก ๋ณต์ฌ
scp $env:USERPROFILE\.ssh\id_ed25519.pub ubuntu@192.168.1.100:~/temp_key.pub
Linux ์๋ฒ์์:
1
2
3
4
5
6
# ์ ์ก๋ ํ์ผ์ authorized_keys์ ์ถ๊ฐ
mkdir -p ~/.ssh
cat ~/temp_key.pub >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
rm ~/temp_key.pub # ์์ ํ์ผ ์ญ์
์ฃผ์์ฌํญ
>
์>>
์ ์ฐจ์ด:>
๋ ํ์ผ์ ๋ฎ์ด์ฐ๊ณ ,>>
๋ ํ์ผ ๋์ ์ถ๊ฐํฉ๋๋ค. ๊ธฐ์กด ํค๊ฐ ์๋ค๋ฉด ๋ฐ๋์>>
๋ฅผ ์ฌ์ฉํ์ธ์.- ์ฌ๋ฌ ์ค ์ถ๊ฐ ๊ธ์ง: ๊ณต๊ฐํค๋ ํ ์ค์ด์ด์ผ ํฉ๋๋ค. ์ค๋ฐ๊ฟ์ด ๋ค์ด๊ฐ๋ฉด ์ธ์ฆ ์คํจํฉ๋๋ค.
- ๊ถํ ๋ฌธ์ : Linux SSH ์๋ฒ๋
.ssh
๋๋ ํ ๋ฆฌ์authorized_keys
ํ์ผ ๊ถํ์ด ๋๋ฌด ์ด๋ ค์์ผ๋ฉด ๋ณด์์ ์ธ์ฆ์ ๊ฑฐ๋ถํฉ๋๋ค.
-
VS Code Remote-SSH ์ค์ ํ๊ธฐ
VS Code ํ์ฅ ์ค์น
- VS Code ์คํ
- ์ข์ธก ์ฌ์ด๋๋ฐ์์ ํ์ฅ(Extensions) ์์ด์ฝ ํด๋ฆญ (Ctrl+Shift+X)
- โRemote - SSHโ ๊ฒ์
- Microsoft์์ ์ ๊ณตํ๋ โRemote - SSHโ ํ์ฅ ์ค์น
- ํจ๊ป ์ค์น๋๋ โRemote - SSH: Editing Configuration Filesโ ํ์ฅ๋ ์๋ ์ค์น๋จ
SSH Config ํ์ผ ์์ฑ
Step 1: Config ํ์ผ ์์ฑ/ํธ์ง
VS Code์์:
F1
๋๋Ctrl+Shift+P
๋ก ๋ช ๋ น ํ๋ ํธ ์ด๊ธฐ- โRemote-SSH: Open SSH Configuration Fileโฆโ ์ ๋ ฅ
C:\Users\<์ฌ์ฉ์๋ช >\.ssh\config
์ ํ
๋๋ PowerShell์์ ์ง์ :
1
2
# Config ํ์ผ์ VS Code๋ก ์ด๊ธฐ
code $env:USERPROFILE\.ssh\config
Step 2: ํธ์คํธ ์ค์ ์ถ๊ฐ
๋ค์ ๋ด์ฉ์ ์ ๋ ฅ:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# ๊ฐ๋ฐ ์๋ฒ ์ค์
Host dev-server
HostName 192.168.1.100
User ubuntu
IdentityFile C:\Users\YourName\.ssh\id_ed25519
AddKeysToAgent yes
IdentitiesOnly yes
ServerAliveInterval 60
ServerAliveCountMax 3
# ํ๋ก๋์
์๋ฒ ์ค์ (๋ค๋ฅธ ํค ์ฌ์ฉ ์์)
Host prod-server
HostName 203.0.113.50
User admin
Port 2222
IdentityFile C:\Users\YourName\.ssh\id_rsa_production
AddKeysToAgent yes
IdentitiesOnly yes
์ค์ ํญ๋ชฉ ์์ธ ์ค๋ช :
ํญ๋ชฉ | ํ์ ์ฌ๋ถ | ์ค๋ช |
---|---|---|
Host |
ํ์ | ์ ์ ์ ์ฌ์ฉํ ๋ณ์นญ (์์ ๋กญ๊ฒ ์ง์ ) |
HostName |
ํ์ | ์ค์ ์๋ฒ IP ์ฃผ์ ๋๋ ๋๋ฉ์ธ |
User |
ํ์ | ์๋ฒ ๋ก๊ทธ์ธ ์ฌ์ฉ์๋ช |
IdentityFile |
๊ถ์ฅ | ์ฌ์ฉํ ๋น๋ฐํค ํ์ผ ๊ฒฝ๋ก (์ ๋ ๊ฒฝ๋ก ๊ถ์ฅ) |
Port |
์ ํ | SSH ํฌํธ (๊ธฐ๋ณธ๊ฐ 22, ๋ณ๊ฒฝ ์ ๋ช ์) |
AddKeysToAgent |
๊ถ์ฅ | SSH Agent์ ํค ์๋ ์ถ๊ฐ (yes ๊ถ์ฅ) |
IdentitiesOnly |
๊ถ์ฅ | ์ง์ ํ ํค๋ง ์ฌ์ฉ (yes ๊ถ์ฅ) |
ServerAliveInterval |
์ ํ | ์๋ฒ์ keepalive ์ ํธ ์ ์ก ๊ฐ๊ฒฉ(์ด) |
ServerAliveCountMax |
์ ํ | keepalive ์คํจ ํ์ฉ ํ์ |
๊ฒฝ๋ก ํ๊ธฐ ์ฃผ์์ฌํญ:
- Windows์์๋ ๋ฐฑ์ฌ๋์(
\
) ๋๋ ์ฌ๋์(/
) ๋ชจ๋ ์ฌ์ฉ ๊ฐ๋ฅ - ๊ณต๋ฐฑ์ด ํฌํจ๋ ๊ฒฝ๋ก๋ ๋ฐ์ดํ๋ก ๊ฐ์ธ๊ธฐ:
"C:\Program Files\..."
~
๋ Windows PowerShell SSH์์ ์ง์ํ์ง๋ง, ์ ๋ ๊ฒฝ๋ก ๊ถ์ฅ
VS Code์์ ์ ์ํ๊ธฐ
๋ฐฉ๋ฒ 1: ๋ช ๋ น ํ๋ ํธ ์ฌ์ฉ
F1
๋๋Ctrl+Shift+P
- โRemote-SSH: Connect to Hostโฆโ ์ ๋ ฅ
- Config์ ์ ์ํ ํธ์คํธ ์ด๋ฆ ์ ํ (์:
dev-server
) - ์ ์ฐฝ์ด ์ด๋ฆฌ๋ฉฐ ์๋ ์ ์ ์๋
- ์ต์ด ์ ์ ์ Fingerprint ํ์ธ ํ์ โ โContinueโ ํด๋ฆญ
- Passphrase ์ค์ ์ ํ ๋ฒ๋ง ์ ๋ ฅ (SSH Agent ์ฌ์ฉ ์)
๋ฐฉ๋ฒ 2: ์ข์ธก ์ฌ์ด๋๋ฐ ์ฌ์ฉ
- ์ข์ธก ์ฌ์ด๋๋ฐ์์ โRemote Explorerโ ์์ด์ฝ ํด๋ฆญ
- โSSH Targetsโ ์น์ ์์ ํธ์คํธ ํ์ธ
- ํธ์คํธ ์ฐํด๋ฆญ โ โConnect to Host in Current Windowโ ๋๋ โConnect to Host in New Windowโ
์ ์ ์๋ฃ ํ์ธ
์ฑ๊ณต ์ VS Code ์ข์ธก ํ๋จ ์ํ๋ฐ์ ๋ค์๊ณผ ๊ฐ์ด ํ์:
1
SSH: dev-server
์ด์ VS Code ํฐ๋ฏธ๋์ ์๋์ผ๋ก Linux ์๋ฒ ํ๊ฒฝ์ด ๋๋ฉฐ, ํ์ผ ํ์๊ธฐ๋ ์๋ฒ์ ํ์ผ ์์คํ ์ ๋ณด์ฌ์ค๋๋ค.
์ถ๊ฐ ํธ์ ๊ธฐ๋ฅ
ํฌํธ ํฌ์๋ฉ ์ค์
๊ฐ๋ฐ ์๋ฒ์ ์น ์ ํ๋ฆฌ์ผ์ด์ (์: ํฌํธ 8000)์ ๋ก์ปฌ์์ ์ ๊ทผํ๊ณ ์ถ๋ค๋ฉด:
1
2
3
Host dev-server
...
LocalForward 8000 localhost:8000
์ด์ ๋ก์ปฌ ๋ธ๋ผ์ฐ์ ์์ http://localhost:8000
์ ์ ์ ์๋ฒ์ 8000 ํฌํธ๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค.
ProxyJump๋ฅผ ํตํ ๋ค๋จ๊ณ ์ ์
Bastion ์๋ฒ๋ฅผ ๊ฑฐ์ณ ๋ด๋ถ ์๋ฒ์ ์ ์ํด์ผ ํ๋ ๊ฒฝ์ฐ:
1
2
3
4
5
6
7
8
9
10
Host bastion
HostName 203.0.113.10
User ubuntu
IdentityFile C:\Users\YourName\.ssh\id_ed25519
Host internal-server
HostName 10.0.1.50
User ubuntu
ProxyJump bastion
IdentityFile C:\Users\YourName\.ssh\id_ed25519
-
Passphrase์ SSH Agent ํ์ฉํ๊ธฐ
Passphrase์ ํ์์ฑ
Passphrase๋ ๋น๋ฐํค ํ์ผ ์์ฒด๋ฅผ ์ํธํํ๋ ์ถ๊ฐ ๋ณด์ ๊ณ์ธต์ ๋๋ค.
์ฅ์ :
- ๋น๋ฐํค ํ์ผ์ด ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ ์ถ๋์ด๋ passphrase ์์ด๋ ์ฌ์ฉ ๋ถ๊ฐ
- ๋ ธํธ๋ถ ๋ถ์ค, ๋ฐฑ์ ํ์ผ ์ ์ถ ๋ฑ์ ์ํฉ์์ ๋ณดํธ
๋จ์ :
- ๋งค๋ฒ SSH ์ ์ ์ passphrase ์ ๋ ฅ ํ์ (SSH Agent ์์ด๋ ๋ถํธ)
SSH Agent๋?
SSH Agent๋ ๋น๋ฐํค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์์ ํ๊ฒ ์บ์ฑํ์ฌ, passphrase๋ฅผ ์ธ์ ๋น ํ ๋ฒ๋ง ์ ๋ ฅํ๋๋ก ํ๋ ์๋น์ค์ ๋๋ค.
Windows์์ SSH Agent ์ค์
Step 1: SSH Agent ์๋น์ค ํ์ฑํ
PowerShell์ ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก ์คํ:
1
2
3
4
5
6
7
8
# SSH Agent ์๋น์ค ์ํ ํ์ธ
Get-Service ssh-agent
# ์๋น์ค ์์
Start-Service ssh-agent
# ์์คํ
๋ถํ
์ ์๋ ์์ ์ค์
Set-Service -Name ssh-agent -StartupType Automatic
Step 2: ๋น๋ฐํค ๋ฑ๋ก
์ผ๋ฐ ์ฌ์ฉ์ ๊ถํ PowerShell์์:
1
2
3
4
5
6
7
# ๋น๋ฐํค๋ฅผ SSH Agent์ ์ถ๊ฐ
ssh-add $env:USERPROFILE\.ssh\id_ed25519
# Passphrase ์ค์ ์ ํ๋กฌํํธ ๋ํ๋จ
Enter passphrase for C:\Users\YourName/.ssh/id_ed25519:
# (passphrase ์
๋ ฅ)
Identity added: C:\Users\YourName/.ssh/id_ed25519 (myemail@company.com)
Step 3: ๋ฑ๋ก๋ ํค ํ์ธ
1
2
3
4
5
# ํ์ฌ Agent์ ๋ฑ๋ก๋ ํค ๋ชฉ๋ก
ssh-add -l
# ์ถ๋ ฅ ์์:
# 256 SHA256:abcd1234... myemail@company.com (ED25519)
VS Code Config์ Agent ์ค์ ์ถ๊ฐ
~/.ssh/config
ํ์ผ์ AddKeysToAgent yes
์ถ๊ฐ ์, VS Code ์ ์ ์ ์๋์ผ๋ก Agent์ ํค ๋ฑ๋ก:
1
2
3
Host dev-server
...
AddKeysToAgent yes
์ธ์ ์ข ๋ฃ ์ ์ฒ๋ฆฌ
SSH Agent๋ Windows ๋ก๊ทธ์์ ์๊น์ง ํค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์งํฉ๋๋ค. ๋ณด์์ ์ํด ๋ช ์์ ์ผ๋ก ์ ๊ฑฐํ๋ ค๋ฉด:
1
2
3
4
5
# Agent์์ ํน์ ํค ์ ๊ฑฐ
ssh-add -d $env:USERPROFILE\.ssh\id_ed25519
# Agent์์ ๋ชจ๋ ํค ์ ๊ฑฐ
ssh-add -D
-
ํธ๋ฌ๋ธ์ํ ๊ฐ์ด๋
๋ฌธ์ 1: โPermission denied (publickey)โ
์ฆ์:
1
ubuntu@192.168.1.100: Permission denied (publickey).
์์ธ ๋ฐ ํด๊ฒฐ:
-
๊ณต๊ฐํค๊ฐ ์๋ฒ์ ์ ๋๋ก ๋ฑ๋ก๋์ง ์์
1 2 3
# Linux ์๋ฒ์์ ํ์ธ cat ~/.ssh/authorized_keys # ๊ณต๊ฐํค ๋ด์ฉ์ด ์ ํํ ํ ์ค๋ก ๋ค์ด๊ฐ ์๋์ง ํ์ธ
-
์๋ฒ ํ์ผ ๊ถํ ๋ฌธ์
1 2 3
# Linux ์๋ฒ์์ ๊ถํ ์ฌ์ค์ chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
-
ํ ๋๋ ํ ๋ฆฌ ๊ถํ ๋ฌธ์
1 2
# ํ ๋๋ ํ ๋ฆฌ๋ ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ์ฐ๊ธฐ ๊ถํ์ ๊ฐ์ง๋ฉด ์ ๋จ chmod 755 ~
-
SELinux ์ปจํ ์คํธ ์ค๋ฅ (CentOS/RHEL)
1
restorecon -R -v ~/.ssh
๋ฌธ์ 2: โWARNING: UNPROTECTED PRIVATE KEY FILE!โ
์ฆ์ (Git Bash/WSL์์):
1
2
3
4
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'C:/Users/YourName/.ssh/id_ed25519' are too open.
์์ธ:
Windows NTFS ํ์ผ ์์คํ
๊ณผ Git Bash/WSL์ ๊ถํ ํด์ ์ฐจ์ด
ํด๊ฒฐ:
Git Bash์์:
1
2
# ๋น๋ฐํค ํ์ผ ๊ถํ ๋ณ๊ฒฝ
chmod 600 ~/.ssh/id_ed25519
WSL์์:
1
2
# Windows ํ์ผ์์คํ
๊ถํ ๋ฌธ์ ํด๊ฒฐ
sudo chmod 600 /mnt/c/Users/YourName/.ssh/id_ed25519
PowerShell์์๋ ์ด ๊ฒฝ๊ณ ๊ฐ ๋ํ๋์ง ์์ต๋๋ค (Windows ์์ฒด ๊ถํ ์์คํ ์ฌ์ฉ).
๋ฌธ์ 3: VS Code ์ ์ ์ ๋ฌดํ ๋ก๋ฉ
์ฆ์:
โSetting up SSH Host dev-server: Downloading VS Code Serverโฆโ ์์ ๋ฉ์ถค
์์ธ ๋ฐ ํด๊ฒฐ:
-
์๋ฒ์ ๋์คํฌ ์ฉ๋ ๋ถ์กฑ
1 2 3
# Linux ์๋ฒ์์ ํ์ธ df -h # /home ํํฐ์ ์ด ๊ฝ ์ฐผ๋ค๋ฉด ์ ๋ฆฌ ํ์
-
๋ฐฉํ๋ฒฝ/๋คํธ์ํฌ ๋ฌธ์
- VS Code Server๋ ๋ค์ด๋ก๋๋ฅผ ์ํด GitHub/Microsoft CDN ์ ๊ทผ ํ์
- ์๋ฒ์์ ์ธ๋ถ ์ธํฐ๋ท ์ฐ๊ฒฐ ํ์ธ:
1
curl -I https://update.code.visualstudio.com
-
VS Code Server ์บ์ ์ญ์
1 2
# Linux ์๋ฒ์์ rm -rf ~/.vscode-server
๋ฌธ์ 4: Passphrase๋ฅผ ๊ณ์ ๋ฌผ์ด๋ด
์ฆ์:
SSH Agent์ ํค๋ฅผ ์ถ๊ฐํ๋๋ฐ๋ ๋งค๋ฒ passphrase ์
๋ ฅ ์๊ตฌ
์์ธ ๋ฐ ํด๊ฒฐ:
-
SSH Agent๊ฐ ์คํ ์ค์ธ์ง ํ์ธ
1 2
Get-Service ssh-agent # Status๊ฐ Running์ด ์๋๋ฉด Start-Service ssh-agent
-
ํค๊ฐ Agent์ ๋ฑ๋ก๋์๋์ง ํ์ธ
1 2
ssh-add -l # "The agent has no identities." ์ถ๋ ฅ ์ ssh-add๋ก ์ฌ๋ฑ๋ก
-
Config ํ์ผ์ AddKeysToAgent ์ค์
1 2
Host * AddKeysToAgent yes
๋ฌธ์ 5: โToo many authentication failuresโ
์ฆ์:
1
Received disconnect from 192.168.1.100: Too many authentication failures
์์ธ:
SSH ํด๋ผ์ด์ธํธ๊ฐ ์ฌ๋ฌ ๊ฐ์ ํค๋ฅผ ์๋ํ๋ค๊ฐ ์๋ฒ์ ์๋ ํ์ ์ ํ ์ด๊ณผ
ํด๊ฒฐ:
Config ํ์ผ์ IdentitiesOnly yes
์ถ๊ฐ:
1
2
3
Host dev-server
...
IdentitiesOnly yes
์ด๋ ๊ฒ ํ๋ฉด ์ง์ ํ ํค๋ง ์ฌ์ฉํ๊ณ ๋ค๋ฅธ ํค๋ ์๋ํ์ง ์์ต๋๋ค.
๋ฌธ์ 6: Host key verification failed
์ฆ์:
1
2
3
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
์์ธ:
์๋ฒ ์ฌ์ค์น, IP ์ฌ์ฌ์ฉ ๋ฑ์ผ๋ก ํธ์คํธ ํค๊ฐ ๋ณ๊ฒฝ๋จ
ํด๊ฒฐ:
1
2
3
4
5
# Windows์์ ํด๋น ํธ์คํธ์ ๊ธฐ๋ก ์ญ์
ssh-keygen -R 192.168.1.100
# ๋๋ known_hosts ํ์ผ์์ ์ง์ ํด๋น ์ค ์ญ์
notepad $env:USERPROFILE\.ssh\known_hosts
-
์ ์ฒด ํ๋ก์ธ์ค ์์ฝ
Windows (๋ก์ปฌ) ์์ ์์
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# ===== 1. SSH Key ์์ฑ =====
ssh-keygen -t ed25519 -C "myemail@company.com"
# Enter 3ํ (๊ธฐ๋ณธ ๊ฒฝ๋ก, passphrase ์๋ต ์)
# ===== 2. SSH Agent ์ค์ (๊ด๋ฆฌ์ ๊ถํ PowerShell) =====
Start-Service ssh-agent
Set-Service -Name ssh-agent -StartupType Automatic
# ===== 3. SSH Agent์ ํค ๋ฑ๋ก (์ผ๋ฐ PowerShell) =====
ssh-add $env:USERPROFILE\.ssh\id_ed25519
# ===== 4. ๊ณต๊ฐํค ๋ด์ฉ ๋ณต์ฌ =====
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | clip
# ๋๋ ์ถ๋ ฅ๋ ๋ด์ฉ์ ์ง์ ๋ณต์ฌ
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub
# ===== 5. VS Code Config ์์ฑ =====
code $env:USERPROFILE\.ssh\config
# ์๋ ๋ด์ฉ ์
๋ ฅ:
1
2
3
4
5
6
7
Host my-linux-server
HostName 192.168.1.100
User ubuntu
IdentityFile C:\Users\YourName\.ssh\id_ed25519
AddKeysToAgent yes
IdentitiesOnly yes
ServerAliveInterval 60
Linux (์๋ฒ) ์์ ์์
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# ===== 1. ๋น๋ฐ๋ฒํธ๋ก ์๋ฒ ์ ์ (์ต์ด 1ํ๋ง) =====
ssh ubuntu@192.168.1.100
# ===== 2. .ssh ๋๋ ํ ๋ฆฌ ๋ฐ authorized_keys ์ค์ =====
mkdir -p ~/.ssh
chmod 700 ~/.ssh
# ===== 3. ๊ณต๊ฐํค ๋ฑ๋ก =====
cat >> ~/.ssh/authorized_keys
# (Windows์์ ๋ณต์ฌํ ๊ณต๊ฐํค ๋ถ์ฌ๋ฃ๊ธฐ)
# (Ctrl+D๋ก ์ ์ฅ)
# ===== 4. ๊ถํ ์ค์ =====
chmod 600 ~/.ssh/authorized_keys
# ===== 5. ํ์ธ ๋ฐ ์ ์ ์ข
๋ฃ =====
cat ~/.ssh/authorized_keys
exit
VS Code ์ ์ ๊ฒ์ฆ
1
2
3
4
5
6
# ===== 1. ํฐ๋ฏธ๋์์ ์๋ ์ ์ ํ
์คํธ =====
ssh my-linux-server
# Passphrase ์ค์ ์ ํ ๋ฒ๋ง ์
๋ ฅ, ์ดํ ์๋
# ===== 2. VS Code์์ ์ ์ =====
# F1 โ "Remote-SSH: Connect to Host..." โ my-linux-server ์ ํ
๋น ๋ฅธ ์ฒดํฌ๋ฆฌ์คํธ
๋จ๊ณ | Windows | Linux | ํ์ธ ์ฌํญ |
---|---|---|---|
ํค ์์ฑ | โ | - | id_ed25519 , id_ed25519.pub ์กด์ฌ |
Agent ์คํ | โ | - | Get-Service ssh-agent โ Running |
ํค ๋ฑ๋ก | โ | - | ssh-add -l โ ํค ๋ชฉ๋ก ์ถ๋ ฅ |
๊ณต๊ฐํค ๋ณต์ฌ | โ | - | ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌ ์๋ฃ |
๊ณต๊ฐํค ๋ฑ๋ก | - | โ | authorized_keys ํ์ผ์ ํ ์ค๋ก ์ถ๊ฐ |
๊ถํ ์ค์ | - | โ | .ssh โ 700, authorized_keys โ 600 |
Config ์์ฑ | โ | - | Host, HostName, User, IdentityFile ํ์ธ |
์ ์ ํ ์คํธ | โ | - | ๋น๋ฐ๋ฒํธ ์์ด ์ ์ ์ฑ๊ณต |
๋ง์น๋ฉฐ
SSH Key ์ธ์ฆ์ ์ฒ์ ์ค์ ์ ๋ค์ ๋ณต์กํด ๋ณด์ผ ์ ์์ง๋ง, ํ ๋ฒ ์ ๋๋ก ๊ตฌ์ถํ๋ฉด ๊ฐ๋ฐ ์์ฐ์ฑ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์๋ ๊ฐ๋ ฅํ ๋๊ตฌ์ ๋๋ค. ํนํ Windows ๋ก์ปฌ ํ๊ฒฝ์์ Linux ์๊ฒฉ ์๋ฒ๋ก VS Code Remote-SSH๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ๋น๋ฐ๋ฒํธ ์ ๋ ฅ ์์ด ์ฆ์ ์ฝ๋ ํธ์ง ํ๊ฒฝ์ ์ง์ ํ ์ ์์ด ์ํฌํ๋ก์ฐ๊ฐ ๋งค๋๋ฝ๊ฒ ์ฐ๊ฒฐ๋ฉ๋๋ค.
ํต์ฌ ์์ ์ฌ์ ๋ฆฌ
- Ed25519 ์๊ณ ๋ฆฌ์ฆ ์ฐ์ ์ฌ์ฉ - ๋น ๋ฅด๊ณ ์์ ํ๋ฉฐ ํ๋์
- Passphrase + SSH Agent ์กฐํฉ - ๋ณด์๊ณผ ํธ์์ฑ ๋ชจ๋ ํ๋ณด
- ์๊ฒฉํ ๊ถํ ๊ด๋ฆฌ - Linux ์๋ฒ์์ 700/600 ๊ถํ ํ์
- Config ํ์ผ ํ์ฉ - ์ฌ๋ฌ ์๋ฒ ๊ด๋ฆฌ ์ ํจ์จ์
- ๋ฌธ์ ๋ฐ์ ์ ๊ถํ/๊ฒฝ๋ก ๋จผ์ ํ์ธ - ๋๋ถ๋ถ์ ์ค๋ฅ ์์ธ
์ด์ ๋งค์ผ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ๋ ์๊ณ ์์ ๋ฒ์ด๋, ๋ ์ค์ํ ์ฝ๋ ์์ฑ๊ณผ ๋ฌธ์ ํด๊ฒฐ์ ์ง์คํ์๊ธฐ ๋ฐ๋๋๋ค.
์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค โ๏ธ