ssh key ๊ด๋ฆฌ ํ
๐ง 1. SSH Key ๊ด๋ฆฌ ํ
SSH Key๋ ์์ฑ ํ์๋ ๊พธ์คํ ๊ด๋ฆฌ๊ฐ ํ์ํฉ๋๋ค. ๊ด๋ฆฌ๊ฐ ์ ๋๋ก ๋์ง ์์ผ๋ฉด ์คํ๋ ค ๋ณด์ ํ์ ์ด ๋ ์ ์์ต๋๋ค.
๐๏ธ 1) ์ฌ๋ฌ ํค๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ~/.ssh/config ํ์ฉ
์ฌ๋ฌ ์๊ฒฉ ์๋ฒ ํน์ Git ๊ณ์ ์ ์ฌ์ฉํ ๊ฒฝ์ฐ, ์๋์ ๊ฐ์ด ํค๋ง๋ค ๋ณ๋ ์ค์ ๊ฐ๋ฅ:
1
2
3
4
5
6
7
8
9
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_github
Host company-server
HostName 192.168.0.10
User ubuntu
IdentityFile ~/.ssh/id_rsa_company
Host: ์ฌ์ฉํ ๋ณ์นญ (ssh ์ ์ ์ssh github.com์ฒ๋ผ ์ฌ์ฉ ๊ฐ๋ฅ)IdentityFile: ์ฐ๊ฒฐ ์ ์ฌ์ฉํ ๊ฐ์ธํค ๊ฒฝ๋ก ์ง์
๐ 2) ์ฃผ๊ธฐ์ ์ธ ํค ๊ต์ฒด
- 6๊ฐ์~1๋ ๋จ์๋ก ํค๋ฅผ ์ฌ๋ฐ๊ธํ๊ณ ๊ต์ฒดํ๋ ๊ฒ์ด ๋ฐ๋์ง
- ๋ง์ฝ ํค๊ฐ ์ ์ถ๋์๊ฑฐ๋ ์ฌ์ฉ์ฒ๊ฐ ๋ช ํํ์ง ์๋ค๋ฉด ์ฆ์ ํ๊ธฐ
๐ 3) ๊ฐ์ธํค ๋ณดํธ ์์น
- ์ ๋ ๊ณต์ ํ๊ฑฐ๋ ์ด๋ฉ์ผ๋ก ์ ์กํ์ง ๋ง ๊ฒ
- ํ์ผ ๊ถํ์
600(์ฝ๊ธฐ/์ฐ๊ธฐ)๋ก ์ ํ
1
chmod 600 ~/.ssh/id_ed25519
- ๊ฐ๋ฅํ๋ฉด ํจ์คํ๋ ์ด์ฆ๋ฅผ ์ค์ ํ์ฌ ์ถ๊ฐ ๋ณด์ ์ ์ฉ
๐งผ 4) ์ฌ์ฉํ์ง ์๋ ๊ณต๊ฐํค ์ ๋ฆฌ
- ์๋ฒ์
~/.ssh/authorized_keysํ์ผ์์ ๋ ์ด์ ์ฌ์ฉํ์ง ์๋ ํค๋ ์ฃผ๊ธฐ์ ์ผ๋ก ์ญ์ - ํค ์ฃผ์(comment)์ ์ ์ ๋ฆฌํด๋๋ฉด ์ด๋ค ํค์ธ์ง ์๋ณ์ด ์ฌ์
๐ ํค ์ฃผ์(comment) ๊ด๋ฆฌ ๋ฐฉ๋ฒ
SSH Key๋ฅผ ์์ฑํ ๋ -C ์ต์
์ผ๋ก ์ฃผ์์ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์ด ์ฃผ์์ ๊ณต๊ฐํค ํ์ผ์ ํฌํจ๋๋ฉฐ, ๋๊ฐ ์ด๋ค ์ฉ๋๋ก ์์ฑํ ํค์ธ์ง ๊ตฌ๋ถํ๋ ๋ฐ ๋งค์ฐ ์ ์ฉํฉ๋๋ค.
์์:
1
ssh-keygen -t ed25519 -C "yuri@dev-machine-2025"
์์ฑ๋ ๊ณต๊ฐํค ํ์ผ (id_ed25519.pub) ์:
1
ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKcJNk... yuri@dev-machine-2025
๋๋ ๋ง๋ฃ์ผ์ ํฌํจํ์ฌ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑํ ์๋ ์์ต๋๋ค:
1
ssh-keygen -t ed25519 -C "yuri@laptop (expire:2025-12-31)"
์ด๋ ๊ฒ ํ๋ฉด authorized_keys ํ์ผ์ ๊ด๋ฆฌํ ๋ ๋๊ตฌ์ ํค์ธ์ง ์ฝ๊ฒ ํ์ธํ๊ณ ๋ง๋ฃ ์์ ๋ ํจ๊ป ์ถ์ ํ ์ ์์ต๋๋ค.
- ์๋ฒ์
~/.ssh/authorized_keysํ์ผ์์ ๋ ์ด์ ์ฌ์ฉํ์ง ์๋ ํค๋ ์ฃผ๊ธฐ์ ์ผ๋ก ์ญ์ - ํค ์ฃผ์(comment)์ ์ ์ ๋ฆฌํด๋๋ฉด ์ด๋ค ํค์ธ์ง ์๋ณ์ด ์ฌ์
โ ์์ฝ: SSH Key๋ ์์ฐ์ฒ๋ผ ๊ด๋ฆฌํด์ผ ํฉ๋๋ค. ๋ณด์๊ณผ ์ ์ง๋ณด์๋ฅผ ์ํด ์ฒด๊ณ์ ์ธ ๊ด๋ฆฌ ์ต๊ด์ด ํ์ํฉ๋๋ค.
๐ข 2. ์ค๋ฌด ํ๊ฒฝ์์์ SSH Key ๊ด๋ฆฌ ์ฌ๋ก
๊ธฐ์ ์ด๋ ์กฐ์ง์์๋ ์์ญ~์๋ฐฑ ๋ช ์ ๊ฐ๋ฐ์๊ฐ ์๋ฒ์ ์ ๊ทผํ ์ ์๊ธฐ ๋๋ฌธ์, SSH Key ๊ด๋ฆฌ ์ฒด๊ณ๊ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค.
๐๏ธ 1) ์ค์ ์ง์คํ Key ๊ด๋ฆฌ ๋๊ตฌ ์ฌ์ฉ
- HashiCorp Vault: Key ์ ์ฅ, ์ ๊ทผ ์ ์ด, ๋ง๋ฃ ๊ด๋ฆฌ ๊ฐ๋ฅ
- AWS Secrets Manager / Parameter Store: IAM ๊ธฐ๋ฐ ๊ถํ ๊ด๋ฆฌ์ ํตํฉ
- Ansible + GitOps: ์๋ฒ ์ ์ ํค๋ฅผ Git์ผ๋ก ๊ด๋ฆฌํ๊ณ Ansible๋ก ๋ฐฐํฌ
๐ 2) Key Rotation ์ ์ฑ ์๋ฆฝ
- ์ ๊ธฐ์ ์ผ๋ก ํค๋ฅผ ํ๊ธฐํ๊ณ ์ฌ๋ฑ๋กํ๋ ๊ท์น์ ๋ง๋ จ
- ํด์ฌ์๋ ์ธ๋ถ ํ๋ ฅ์์ ์ ๊ทผ์ ์ฆ์ ์ฐจ๋จํ ์ ์๋๋ก ์๋ํ
๐ 3) ์ ์ ๋ก๊ทธ ๋ฐ ๊ฐ์ฌ ๊ธฐ๋ก ํ๋ณด
- SSH ์ ์ ์ ๋ก๊ทธ๋ฅผ ๋จ๊ฒจ ๋๊ฐ ์ธ์ ์ด๋ค ์๋ฒ์ ์ ์ํ๋์ง ์ถ์ ๊ฐ๋ฅํ๊ฒ ํจ
- ๋ณด์ ์ฌ๊ณ ๋ฐ์ ์ ์ถ์ ์ด ๊ฐ๋ฅํด์ผ ํจ
๐งฉ 4) LDAP ๋๋ SSO์์ ์ฐ๋
- ์ง์ ๊ณ์ ์ด LDAP ๋๋ SSO์ ์ํด ๊ด๋ฆฌ๋๋ค๋ฉด, SSH Key ์ ๊ทผ๊ถํ๋ ํด๋น ์์คํ ๊ณผ ์ฐ๋
- ๊ณ์ ๋นํ์ฑํ ์ ์๋์ผ๋ก ํค ์ ๊ทผ๋ ์ฐจ๋จ
๐ ์ค์ ์ฌ๋ก: ๋ชจ ๊ธฐ์ ์ ํค ์ฃผ์์ ์ฌ์ฉ์ ์ด๋ฉ์ผ๊ณผ ๋ง๋ฃ์ผ์ ๋ช ์ํด ๋๊ณ , ๋ฐฐ์น ์คํฌ๋ฆฝํธ๋ฅผ ํตํด ๋ง๋ฃ๋ ํค๋ฅผ ์๋์ผ๋ก ์ ๊ฑฐํ๋ ์์คํ ์ ๋์ ํจ