๐ข ์ด ๊ธ์ "์ด๊ธฐ ์ธํ "์ด ์๋ "์ด์ ์ค ํด๋ฌ์คํฐ ํ์ฅ" ์ํฉ์ ๊ธฐ์ค์ผ๋ก ์์ฑ๋์์ต๋๋ค. (์ด๊ธฐ ์ธํ ๊ฐ์ด๋๋ โก๏ธ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด5 ๋ ์ํผ #3: ์ด๊ธฐ ํด๋ฌ์คํฐ ๊ตฌ์ถ ๊ฐ์ด๋๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์!)
์๋ ํ์ธ์! ์ค๋์ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด ํด๋ฌ์คํฐ๋ฅผ ํ์ฅํ ๋ ๊ผญ ํ์ํ SSH ์ค์ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ํด๋ฌ์คํฐ์ ์๋ก์ด ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด๋ฅผ ์ถ๊ฐํ๋ฉด์ ๊ณ ์ํ๋ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ์ผ๋ ๋ง์ ๋์์ด ๋์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค. ๐
๐ ๋ชฉํ
- ์๋ก์ด ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด๋ฅผ ํด๋ฌ์คํฐ์ ์ถ๊ฐํ ๋ SSH Key ์ธ์ฆ๊ณผ ProxyJump ์ค์ ๋ฐฉ๋ฒ ์ ๋ฆฌ
- ๋ชจ๋ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด ๊ฐ ๋น๋ฐ๋ฒํธ ์์ด SSH ์ ์์ด ๊ฐ๋ฅํ๋๋ก ์ค์
- PC์์ ๊ฐ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด๋ก ํ ๋ฒ์ ์ ์ํ ์ ์๋ ํ๊ฒฝ ๊ตฌ์ถ
1๏ธโฃ ๋ชจ๋ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด์์ SSH Key ์์ฑ ๋ฐ ๊ณต์
1-1. SSH Key ์์ฑํ๊ธฐ
ํด๋ฌ์คํฐ์ ๋ชจ๋ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด(๊ธฐ์กด ๋ ธ๋ + ์ ๋ ธ๋)์์ SSH Key๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค.
๐ ๊ฐ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด์์ ๋ค์ ๋ช ๋ น์ด ์คํ:
ssh-keygen -t rsa -b 4096
๐ ํ๋กฌํํธ ๋ํ๋๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ ๋ ฅ:
- ํ์ผ ์ ์ฅ ์์น: ๊ทธ๋ฅ ์ํฐํค ๋๋ฅด๊ธฐ (๊ธฐ๋ณธ๊ฐ:
/home/ubuntu/.ssh/id_rsa
) - ํจ์คํ๋ ์ด์ฆ: ๊ทธ๋ฅ ์ํฐํค ๋๋ฅด๊ธฐ (๋น๋ฐ๋ฒํธ ์์ด ์ค์ )
ํค๊ฐ ์ ๋๋ก ์์ฑ๋์๋์ง ํ์ธํ๋ ค๋ฉด:
ls ~/.ssh/id_rsa.pub
ํ์ผ์ด ์กด์ฌํ๋ฉด ์ฑ๊ณต์ ๋๋ค! ๐
1-2. SSH Key ๊ณต์ ํ๊ธฐ
์ด์ ๊ฐ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด์์ ๋ค๋ฅธ ๋ชจ๋ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด๋ก SSH Key๋ฅผ ๋ณต์ฌํด์ผ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, pi1
์์ pi2
, pi3
, pi4
๋ก ๋ณต์ฌํ๋ ๋ฐฉ๋ฒ:
ssh-copy-id ubuntu@165.194.19.XX # pi2์ IP
ssh-copy-id ubuntu@165.194.19.XX # pi3์ IP
ssh-copy-id ubuntu@165.194.19.XX # pi4์ IP
๐ ์ฃผ์: ์ค์ IP ์ฃผ์๋ฅผ ์ฌ์ฉํ์ธ์! ์ฌ๊ธฐ์๋ ๋ณด์์ ์ํด ์ผ๋ถ๋ฅผ ๊ฐ๋ ธ์ต๋๋ค.
SSH Key ๋ณต์ฌ๊ฐ ์๋ฃ๋๋ฉด ๋น๋ฐ๋ฒํธ ์์ด ์ ์์ด ๊ฐ๋ฅํ์ง ํ ์คํธํด๋ณด์ธ์:
ssh pi2
ssh pi3
ssh pi4
๋น๋ฐ๋ฒํธ ์์ฒญ ์์ด ์ ์๋๋ฉด ์ฑ๊ณต์ ๋๋ค! ๐
2๏ธโฃ ProxyJump ์ค์ ํ๊ธฐ
2-1. Windows PC์์ SSH ์ค์ ํ๊ธฐ
PC์์ ๊ฐ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด๋ก ๋ฐ๋ก ์ ์ํ ์ ์๋๋ก ProxyJump๋ฅผ ์ค์ ํ๊ฒ ์ต๋๋ค.
๐ CMD์์ ๋ค์ ๋ช ๋ น์ด ์คํ:
notepad %USERPROFILE%\.ssh\config
๐ ๋ค์ ๋ด์ฉ ์ถ๊ฐ (ํด๋ฌ์คํฐ์ ์๋ก์ด ๋ ธ๋ ์ถ๊ฐํ ๋๋ง๋ค ์ ๋ฐ์ดํธ):
Host pi1
HostName 165.194.19.XX
User ubuntu
IdentityFile ~/.ssh/id_rsa
Host pi2
HostName 165.194.19.XX
User ubuntu
ProxyJump pi1
IdentityFile ~/.ssh/id_rsa
Host pi3
HostName 165.194.19.XX
User ubuntu
ProxyJump pi1
IdentityFile ~/.ssh/id_rsa
Host pi4
HostName 165.194.19.XX
User ubuntu
ProxyJump pi1
IdentityFile ~/.ssh/id_rsa
# ์๋ก์ด ๋
ธ๋ ์ถ๊ฐ ์ ์๋ ํ์์ผ๋ก ์ถ๊ฐ
# Host pi5
# HostName 165.194.19.XX
# User ubuntu
# ProxyJump pi1
# IdentityFile ~/.ssh/id_rsa
ํ์ผ์ ์ ์ฅํ๊ณ ๋ซ์ ํ, ์ ์ ํ ์คํธ:
ssh pi2
ssh pi3
ssh pi4
์ด์ PC์์ ssh pi2
๋ง ์
๋ ฅํ๋ฉด pi1
์ ๊ฑฐ์ณ ์๋์ผ๋ก ์ ์๋ฉ๋๋ค! ๐ฏ
2-2. ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด์์ SSH ์ค์ ํ๊ธฐ
๊ฐ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด์์๋ SSH ์ค์ ํ์ผ์ ๋ง๋ค์ด ๋ฐ๋ก ์ ์ํ ์ ์๋๋ก ํฉ๋๋ค.
๐ ๊ฐ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด์์ ๋ค์ ๋ช ๋ น์ด ์คํ:
nano ~/.ssh/config
๐ ๋ค์ ๋ด์ฉ ์ถ๊ฐ:
Host pi1
HostName 165.194.19.XX
User ubuntu
IdentityFile ~/.ssh/id_rsa
Host pi2
HostName 165.194.19.XX
User ubuntu
IdentityFile ~/.ssh/id_rsa
Host pi3
HostName 165.194.19.XX
User ubuntu
IdentityFile ~/.ssh/id_rsa
Host pi4
HostName 165.194.19.XX
User ubuntu
IdentityFile ~/.ssh/id_rsa
์ค์ ์ ์ฅ ํ (Ctrl + X
→ Y
→ Enter
), ๊ถํ ์ค์ :
chmod 600 ~/.ssh/config
์ด์ ๋ชจ๋ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด ๊ฐ ssh piX
๋ช
๋ น์ด ๋น๋ฐ๋ฒํธ ์์ด ๊ฐ๋ฅํด์ผ ํฉ๋๋ค! ๐
3๏ธโฃ ์๋ก์ด ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด๋ฅผ ํด๋ฌ์คํฐ์ ์ถ๊ฐํ๋ ๊ณผ์
์๋ก์ด ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด(์: pi5
)๋ฅผ ํด๋ฌ์คํฐ์ ์ถ๊ฐํ๋ ค๋ฉด ๋ค์ ์ ์ฐจ๋ฅผ ๋ฐ๋ฅด์ธ์:
1. ์ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด์์ SSH Key ์์ฑ
ssh-keygen -t rsa -b 4096
(ํ์ผ๋ช ์ ๊ธฐ๋ณธ๊ฐ, ํจ์คํ๋ ์ด์ฆ๋ ๋น์นธ์ผ๋ก)
2. ๊ธฐ์กด ๋ชจ๋ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด์์ ์ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด๋ก SSH Key ๋ณต์ฌ
๋ชจ๋ ๊ธฐ์กด ๋
ธ๋(pi1
, pi2
, pi3
, pi4
)์์ ์คํ:
ssh-copy-id ubuntu@165.194.19.XX # pi5์ IP
3. ์ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด์์ ๊ธฐ์กด ๋ชจ๋ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด๋ก SSH Key ๋ณต์ฌ
ssh-copy-id ubuntu@165.194.19.XX # pi1์ IP
ssh-copy-id ubuntu@165.194.19.XX # pi2์ IP
ssh-copy-id ubuntu@165.194.19.XX # pi3์ IP
ssh-copy-id ubuntu@165.194.19.XX # pi4์ IP
4. ์ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด์์ SSH ์ค์ ํ์ผ ์์ฑ
nano ~/.ssh/config
์์์ ์ค๋ช ํ ์ค์ ์ถ๊ฐ ํ ๊ถํ ์ค์ :
chmod 600 ~/.ssh/config
5. Windows์ SSH ์ค์ ํ์ผ์ ์ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด ์ถ๊ฐ
Host pi5
HostName 165.194.19.XX
User ubuntu
ProxyJump pi1
IdentityFile ~/.ssh/id_rsa
6. ํธ์คํธ ํ์ผ ์์ (์ ํ ์ฌํญ)
pi1
์์ /etc/hosts
ํ์ผ์ ์์ ํ์ฌ ์ ๋
ธ๋๋ฅผ ์ถ๊ฐํ๋ฉด ๋์ฑ ํธ๋ฆฌํฉ๋๋ค:
sudo nano /etc/hosts
๋ค์๊ณผ ๊ฐ์ด ์ถ๊ฐ:
165.194.19.XX rpi-05 pi5
๊ธฐ์กด hosts ํ์ผ ์์:
127.0.0.1 localhost
127.0.1.1 rpi-01
165.194.19.XX rpi-01 pi1
165.194.19.XX rpi-02 pi2
165.194.19.XX rpi-03 pi3
165.194.19.XX rpi-04 pi4
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouter
๋ง๋ฌด๋ฆฌ
์ด์ ๋ชจ๋ ์ค์ ์ด ์๋ฃ๋์์ต๋๋ค! ๐ ์๋ก์ด ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด๋ฅผ ํด๋ฌ์คํฐ์ ์ถ๊ฐํ ๋๋ง๋ค ์ ์ ์ฐจ๋ฅผ ๋ฐ๋ผ๊ฐ๋ฉด ๋ฉ๋๋ค. ์ด ์ค์ ์ ํตํด ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด ํด๋ฌ์คํฐ ๊ด๋ฆฌ๊ฐ ํจ์ฌ ํธํด์ง ๊ฒ์ ๋๋ค.
์ด์ ์ฌ๋ฌ๋ถ์!
- PC์์ ์ด๋ค ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด๋ก๋ ํ ๋ฒ์ ์ ์ ๊ฐ๋ฅ
- ๋ชจ๋ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด ๊ฐ ๋น๋ฐ๋ฒํธ ์์ด SSH ์ ์ ๊ฐ๋ฅ
- ProxyJump๋ฅผ ํตํด ๋คํธ์ํฌ ์ ์ฝ ์ํฉ์์๋ ์ ์ ๊ฐ๋ฅ
๋ค์ ๊ธ์์๋ ์ฐ๊ตฌ์ค ์ธ๋ถ์ ํ๊ฒฝ์์ ์ฐ๊ตฌ์ค ๋ด๋ถ์ Raspberry Pi ํด๋ฌ์คํฐ๋ก ์ ๊ทผํ ์ ์์์ง ์์์ง ์ฝ์งํ๋ ๋ด์ฉ์ ๊ณต์ ํ๊ฒ ์ต๋๋ค. ๊ถ๊ธํ ์ ์ด ์์ผ์๋ฉด ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์! ๐