๋์
๋์๊ณผ์ ๋น๊ต
SSH-Frontiรจre๋ง์ด SSH ์ ๊ทผ์ ์ ์ดํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ์๋๋๋ค. ์ด ํ์ด์ง์์๋ ์ฌ๋ฐ๋ฅธ ์๋ฃจ์ ์ ์ ํํ ์ ์๋๋ก ๊ธฐ์กด ์ ๊ทผ ๋ฐฉ์์ ๋น๊ตํฉ๋๋ค.
๋น๊ต ํ
| ๊ธฐ์ค | authorized_keys command= | SSH-Frontiรจre | Teleport | Boundary |
|---|---|---|---|---|
| ์ ํ | OpenSSH ์ต์ | ๋ก๊ทธ์ธ ์ ธ | SSH ๋ฐฐ์ค์ฒ | SSH ๋ฐฐ์ค์ฒ |
| ๋์ | ํค๋น ๋จ์ผ ์คํฌ๋ฆฝํธ | ์๋น์ค ๊ณ์ | ์ฌ์ฉ์(์ฌ๋) | ์ฌ์ฉ์(์ฌ๋) |
| ์ธ๋ถํ | ํค๋น 1๊ฐ ๋ช ๋ น | RBAC 3๋จ๊ณ, ๋๋ฉ์ธ, ์ก์ , ์ธ์ | ์ญํ , ๋ผ๋ฒจ, RBAC | IAM ์ ์ฑ |
| ๋ก๊น | ๋น๊ตฌ์กฐํ | ๋ช ๋ น๋ณ ๊ตฌ์กฐํ๋ JSON | ์ ์ฒด ์ธ์ (๋ฆฌํ๋ ์ด) | ๊ฐ์ฌ ์ถ์ |
| ๋ฐฐํฌ | ๋ค์ดํฐ๋ธ (OpenSSH) | ๋ฐ์ด๋๋ฆฌ 1๊ฐ + TOML ํ์ผ 1๊ฐ | ํด๋ฌ์คํฐ (์ธ์ฆ ์๋ฒ, ํ๋ก์, ๋ ธ๋) | ํด๋ฌ์คํฐ (์ปจํธ๋กค๋ฌ, ์์ปค) |
| ์์กด์ฑ | ์์ | ์์คํ ์์กด์ฑ 0๊ฐ | ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์ธ์ฆ์ | ๋ฐ์ดํฐ๋ฒ ์ด์ค |
| ํฌ๊ธฐ | โ | ์ฝ 1 Mo (์ ์ ๋ฐ์ด๋๋ฆฌ) | ์ฝ 100 Mo | ์ฝ 100 Mo |
| ์ธ์ ์ ๋ฐฉ์ง | ์คํฌ๋ฆฝํธ ์ฑ ์ | ๊ตฌ์กฐ์ (๋ฌธ๋ฒ ํ์) | ํด๋น ์์ (๋ํํ ์ธ์ ) | ํด๋น ์์ (๋ํํ ์ธ์ ) |
| LLM ํธํ | ์๋์ค | ์ (JSON, help, ํ์) | ์๋์ค | ์๋์ค |
| ๋ผ์ด์ ์ค | OpenSSH (BSD) | EUPL-1.2 | AGPL-3.0 (OSS) / ์์ฉ | BSL 1.1 |
authorized_keys์ command=
authorized_keys์ command= ์ต์
์ ์ฌ์ฉํ๋ฉด ๊ฐ ์ฐ๊ฒฐ ์ ์คํฌ๋ฆฝํธ ์คํ์ ๊ฐ์ ํ ์ ์์ต๋๋ค. ๊ฐ์ฅ ๋จ์ํ๊ณ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์๋ฃจ์
์
๋๋ค.
์ฅ์
- ์ค์น ๋ถํ์: OpenSSH์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ
- ๋จ์: ๋จ์ผ ์ฌ์ฉ ์ฌ๋ก์ ์ ํฉ (ํ๋์ ํค = ํ๋์ ๋ช ๋ น)
ํ๊ณ
- ํค๋น ํ๋์ ์คํฌ๋ฆฝํธ๋ง: ์ธ๋ฐํ ์ ์ด ๋ถ๊ฐ. N๊ฐ์ ๋ค๋ฅธ ์ก์
์ ์ํด์๋ N๊ฐ์ ํค ๋๋
$SSH_ORIGINAL_COMMAND๋ฅผ ํ์ฑํ๋ bash ์คํฌ๋ฆฝํธ ํ์ - ์ธ์ ๊ฒ์ฆ ์์: ์คํฌ๋ฆฝํธ๊ฐ ์์ ๋ฌธ์์ด์ ๋ฐ์ ์ง์ ๊ฒ์ฆํด์ผ ํจ โ ์๋ชป ๊ตฌํํ๋ฉด ์ธ์ ์ ์ํ
- ์ ๊ทผ ์์ค ์์: ๋ชจ๋ ํค๊ฐ ๋์ผํ ๊ถํ (๋๋ ์คํฌ๋ฆฝํธ์์ ์ง์ ์ฝ๋ฉ ํ์)
- ๊ตฌ์กฐํ๋ ๋ก๊น ์์: ๋ก๊ทธ๋ ์คํฌ๋ฆฝํธ์ ์์กด
- ์ทจ์ฝ์ฑ: ๋ช ๋ น ๊ฒ์ฆ์ด ์๋ bash ์คํฌ๋ฆฝํธ๋ ๋ณด์๊ณผ ์ ์ง๋ณด์๊ฐ ์ด๋ ค์
command=๋ฅผ ์ ํํ ๋
- ๋จ์ํ ์๊ตฌ: SSH ํค ํ๋, ๊ณ ์ ๋ช ๋ น ํ๋, ๋งค๊ฐ๋ณ์ ์์
- ๊ฐ์ฌ๋ RBAC ์๊ตฌ์ฌํญ ์์
Teleport
Teleport์ ์ธ์ ๋ นํ, SSO, ์ธ์ฆ์, ๊ฐ์ฌ ์ถ์ ์ ๊ฐ์ถ ์์ ํ SSH ๋ฐฐ์ค์ฒ์ ๋๋ค.
์ฅ์
- ์ธ์ ๋ นํ: ๊ฐ SSH ์ธ์ ์ ์์ ํ ๋ฆฌํ๋ ์ด
- ํตํฉ SSO: GitHub, OIDC, SAML
- ์ธ์ฆ์: SSH ํค ๊ด๋ฆฌ ๋ถํ์
- ์์ ํ ๊ฐ์ฌ: ๋๊ฐ ์ฐ๊ฒฐํ๋์ง, ์ธ์ , ์ด๋์, ๋ฌด์์ ํ๋์ง
ํ๊ณ
- ๋ฐฐํฌ๊ฐ ๋ณต์ก: ์ธ์ฆ ์๋ฒ, ํ๋ก์, ๋ ธ๋ ์์ด์ ํธ, ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์ธ์ฆ์
- ์ฌ๋์ ์ํด ์ค๊ณ: ๋ํํ ์ธ์ , ๋จธ์ ํฌ ๋จธ์ ํ๋กํ ์ฝ ์์
- ์๋น์ค ๊ณ์ ์ ๊ณผ๋: CI ๋ฌ๋๋ ์ธ์ ๋ นํ๋ SSO๊ฐ ํ์ ์์
- ์ด์ค ๋ผ์ด์ ์ค: ์ปค๋ฎค๋ํฐ ๋ฒ์ (AGPL-3.0)์ ๊ธฐ๋ฅ์ ์ ํ์ด ์์
Teleport์ ์ ํํ ๋
- ์ฌ๋์ ์๋ฒ ํ ์ ๊ทผ ๊ด๋ฆฌ
- ์ธ์ ๋ นํ์ SSO๊ฐ ํ์
- ํด๋ฌ์คํฐ๋ฅผ ๋ฐฐํฌํ๊ณ ์ ์งํ ์ ์๋ ์ธํ๋ผ
HashiCorp Boundary
Boundary๋ ์ฐ๊ฒฐ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ถ์ํํ๊ณ ์ธ๋ถ ID ์์ค๋ฅผ ํตํฉํ๋ ์ ๊ทผ ํ๋ก์์ ๋๋ค.
์ฅ์
- ์ธํ๋ผ ์ถ์ํ: ์ฌ์ฉ์๊ฐ IP๊ฐ ์๋ ๋ ผ๋ฆฌ์ ๋์์ ์ฐ๊ฒฐ
- IAM ํตํฉ: Active Directory, OIDC, LDAP
- ์๊ฒฉ ์ฆ๋ช ์ฃผ์ : ๋น๋ฐ์ด ๋์ ์ผ๋ก ์ฃผ์ ๋๋ฉฐ ๊ณต์ ๋์ง ์์
ํ๊ณ
- ๋ณต์ก: ์ปจํธ๋กค๋ฌ, ์์ปค, ๋ฐ์ดํฐ๋ฒ ์ด์ค, IAM ํตํฉ
- ์ฌ๋ ์ฌ์ฉ์ ์งํฅ: ์๋ํ ์คํฌ๋ฆฝํธ๋ฅผ ์ํด ์ค๊ณ๋์ง ์์
- BSL 1.1 ๋ผ์ด์ ์ค: ์ปค๋ฎค๋ํฐ ์๋์ ์ ์์ ์ ์ ํ
- ๋ช ๋ น ์์ค ์ ์ด ์์: Boundary๋ ํธ์คํธ ์ ๊ทผ์ ์ ์ดํ์ง, ํน์ ๋ช ๋ น์ ์ ์ดํ์ง ์์
Boundary๋ฅผ ์ ํํ ๋
- ์ค์ ์ง์ค์ ID ๊ด๋ฆฌ๊ฐ ์๋ ๋๊ท๋ชจ ์๋ฒ ํ
- ์ธํ๋ผ ์ถ์ํ ํ์ (์ฌ์ฉ์๊ฐ IP๋ฅผ ๋ชจ๋ฆ)
- HashiCorp ์ ๋ฌธ์ฑ์ด ์๋ ํ (Vault, Terraform ๋ฑ)
sudo ๋จ๋
์ฌ์ฉ
sudo๋ ์์คํ
๋ช
๋ น์ ๊ถํ ์์น์ ์ ์ดํฉ๋๋ค. ์๋น์ค ๊ณ์ ์ ์ก์
์ ์ ํํ๊ธฐ ์ํด ๋จ๋
์ผ๋ก ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค.
์ฅ์
- ๋ค์ดํฐ๋ธ: ๋ชจ๋ Linux ์์คํ ์ ์กด์ฌ
- ์ธ๋ฐํ ์ ์ด: ์ฌ์ฉ์, ๋ช ๋ น, ์ธ์๋ณ ์ธ๋ฐํ ๊ท์น
ํ๊ณ
- SSH ์
๋ ฅ์ ์ ์ดํ์ง ์์:
sudo๊ฐ ์์น์ ์ฐจ๋จํด๋ ๋ชจ๋ ๋ช ๋ น์ด SSH๋ฅผ ํตํด ์์ฒญ๋ ์ ์์ - ํ๋กํ ์ฝ ์์: ๊ตฌ์กฐํ๋ ์๋ต ์์, ํตํฉ JSON ๋ก๊น ์์
- ๋ณต์กํ ๊ตฌ์ฑ: ๋ช ๋ น์ด ๋ง์์ง๋ฉด sudoers ๊ท์น ์ ์ง๊ฐ ์ด๋ ค์์ง
sudo๋ฅผ ๋จ๋
์ผ๋ก ์ ํํ ๋
- ์ํ์ด ๋ฎ์ ๋จ์ํ ํ๊ฒฝ
- SSH ์ ๋ ฅ์ด ์ด๋ฏธ ๋ค๋ฅธ ๋ฉ์ปค๋์ฆ(๋ฐฐ์ค์ฒ, VPN)์ผ๋ก ์ ์ด๋๋ ๊ฒฝ์ฐ
SSH-Frontiรจre๋ฅผ ์ ํํ ๋
SSH-Frontiรจre๋ ํน์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ํด ์ค๊ณ๋์์ต๋๋ค: ์๋น์ค ๊ณ์ (์ฌ๋์ด ์๋)์ด SSH๋ฅผ ํตํด ์ํํ ์ ์๋ ์์ ์ ์ ์ดํ๋ ๊ฒ.
SSH-Frontiรจre๋ฅผ ์ ํํ์ธ์:
- SSH ์ฐ๊ฒฐ์ด ์๋ํ ์คํฌ๋ฆฝํธ (CI/CD, AI ์์ด์ ํธ, cron)์ธ ๊ฒฝ์ฐ
- ์ธ๋ถํ๊ฐ ํ์ํ ๊ฒฝ์ฐ: ๋๋ฉ์ธ, ์ก์ , ์ธ์, ์ ๊ทผ ์์ค
- ๊ฐ์ฌ์ ๊ด์ธก์ฑ์ ์ํ ๊ตฌ์กฐํ๋ JSON ๋ก๊น ์ ์ํ๋ ๊ฒฝ์ฐ
- ๊ฐ๋จํ ๋ฐฐํฌ๋ฅผ ์ํ๋ ๊ฒฝ์ฐ: ๋ฐ์ด๋๋ฆฌ ํ๋, TOML ํ์ผ ํ๋
- LLM ํธํ์ฑ์ด ํ์ํ ๊ฒฝ์ฐ: JSON ์๋ต,
help/list๋ฅผ ํตํ ํ์ - ํด๋ฌ์คํฐ๋ฅผ ๋ฐฐํฌํ๊ณ ์ ์งํ๊ณ ์ถ์ง ์์ ๊ฒฝ์ฐ (Teleport, Boundary)
SSH-Frontiรจre๋ฅผ ์ ํํ์ง ๋ง์ธ์:
- ์ฌ์ฉ์๊ฐ ํ๋ถํ๊ณ ์์ ํ ๋ํํ ์ธ์ ์ด ํ์ํ ์ฌ๋์ธ ๊ฒฝ์ฐ
- ๋ค๋ฅธ ์๋ฒ๋ก์ SSH ํ๋ก์๊ฐ ํ์ํ ๊ฒฝ์ฐ
- SSO๊ฐ ํ์ํ ๊ฒฝ์ฐ