8.9๊ฐ์ ๊ฐ์ ๊ฐ๋ฐ ๋์ SSH 2.0 ๋ฐ SFTP ํ๋กํ ์ฝ์ ํตํ ์์ ์ ์ํ ๊ฐ๋ฐฉํ ํด๋ผ์ด์ธํธ ๋ฐ ์๋ฒ ๊ตฌํ์ธ OpenSSH XNUMX๊ฐ ์ถ์๋์์ต๋๋ค. ์๋ก์ด ๋ฒ์ ์ sshd๋ ์ ์ฌ์ ์ผ๋ก ์ธ์ฆ๋์ง ์์ ์ก์ธ์ค๋ฅผ ํ์ฉํ ์ ์๋ ์ทจ์ฝ์ ์ ์์ ํฉ๋๋ค. ์ด ๋ฌธ์ ๋ ์ธ์ฆ ์ฝ๋์ ์ ์ ์ค๋ฒํ๋ก๋ก ์ธํด ๋ฐ์ํ์ง๋ง ์ฝ๋์ ๋ค๋ฅธ ๋ ผ๋ฆฌ์ ์ค๋ฅ์ ๊ฒฐํฉํด์๋ง ์ ์ฉ๋ ์ ์์ต๋๋ค.
ํ์ฌ ํํ์์๋ ๊ถํ ๋ถ๋ฆฌ ์ถ์ ์ฝ๋์์ ์ํ๋๋ ๋ณ๋์ ๊ฒ์ฌ๋ฅผ ํตํด ํด๋น ์ทจ์ฝ์ ์ ๋ฐํ์ด ์ฐจ๋จ๋๋ฏ๋ก ๊ถํ ๋ถ๋ฆฌ ๋ชจ๋๊ฐ ํ์ฑํ๋ ๊ฒฝ์ฐ ์ทจ์ฝ์ ์ ์ ์ฉํ ์ ์์ต๋๋ค. ๊ถํ ๋ถ๋ฆฌ ๋ชจ๋๋ 2002๋ OpenSSH 3.2.2๋ถํฐ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์์ผ๋ฉฐ, 7.5๋ ๊ณต๊ฐ๋ OpenSSH 2017 ๋ฆด๋ฆฌ์ค๋ถํฐ ํ์์์ต๋๋ค. ๋ํ ๋ฆด๋ฆฌ์ค 6.5(2014)๋ถํฐ ํด๋์ฉ ๋ฒ์ ์ OpenSSH์์๋ ์ ์ ์ค๋ฒํ๋ก ๋ฐฉ์ง ํ๋๊ทธ๋ฅผ ํฌํจํ๋ ์ปดํ์ผ์ ํตํด ์ทจ์ฝ์ ์ด ์ฐจ๋จ๋ฉ๋๋ค.
๊ธฐํ ๋ณ๊ฒฝ ์ฌํญ:
- sshd์ ์๋ OpenSSH์ ํด๋์ฉ ๋ฒ์ ์ MD5 ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ ๋น๋ฐ๋ฒํธ ํด์ฑ์ ๋ํ ๊ธฐ๋ณธ ์ง์์ ์ ๊ฑฐํ์ต๋๋ค(libxcrypt์ ๊ฐ์ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ๋งํฌ ๋ฐํ ํ์ฉ).
- ssh, sshd, ssh-add ๋ฐ ssh-agent๋ ssh-agent์ ์ถ๊ฐ๋ ํค์ ์ ๋ฌ ๋ฐ ์ฌ์ฉ์ ์ ํํ๋ ํ์ ์์คํ ์ ๊ตฌํํฉ๋๋ค. ํ์ ์์คํ ์ ์ฌ์ฉํ๋ฉด ssh-agent์์ ํค๋ฅผ ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ๊ณผ ์์น๋ฅผ ๊ฒฐ์ ํ๋ ๊ท์น์ ์ค์ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํธ์คํธ scylla.example.org์ ์ฐ๊ฒฐํ๋ ๋ชจ๋ ์ฌ์ฉ์, ํธ์คํธ cetus.example.org์ ์ฌ์ฉ์ perseus, ํธ์คํธ charybdis.example.org์ ์ฌ์ฉ์ medea๋ฅผ ์ธ์ฆํ๋ ๋ฐ๋ง ์ฌ์ฉํ ์ ์๋ ํค๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด ์ค๊ฐ ํธ์คํธ scylla.example.org๋ฅผ ํตํ ๋ฆฌ๋๋ ์ ์ ์ฌ์ฉํ๋ฉด ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ ์ ์์ต๋๋ค: $ ssh-add -h "[์ด๋ฉ์ผ ๋ณดํธ]" \ -h "scylla.example.org" \ -h "scylla.example.org>[์ด๋ฉ์ผ ๋ณดํธ]\ ~/.ssh/id_ed25519
- ssh ๋ฐ sshd์์๋ ํค ๊ตํ ๋ฐฉ๋ฒ์ด ์ ํ๋๋ ์์๋ฅผ ๊ฒฐ์ ํ๋ ํ์ด๋ธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ด ๊ธฐ๋ณธ์ ์ผ๋ก KexAlgorithms ๋ชฉ๋ก์ ์ถ๊ฐ๋์์ต๋๋ค.[์ด๋ฉ์ผ ๋ณดํธ]"(ECDH/x25519 + NTRU Prime), ์์ ์ปดํจํฐ์์ ์ ํ์ ์ ํญํฉ๋๋ค. OpenSSH 8.9์์๋ ์ด ํ์ ๋ฐฉ๋ฒ์ด ECDH์ DH ๋ฐฉ๋ฒ ์ฌ์ด์ ์ถ๊ฐ๋์์ง๋ง ๋ค์ ๋ฆด๋ฆฌ์ค์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋ ์์ ์ ๋๋ค.
- ssh-keygen, ssh ๋ฐ ssh-agent์์๋ ์์ฒด ์ธ์ฆ์ฉ ํค๋ฅผ ํฌํจํ์ฌ ์ฅ์น ํ์ธ์ ์ฌ์ฉ๋๋ FIDO ํ ํฐ ํค ์ฒ๋ฆฌ๊ฐ ๊ฐ์ ๋์์ต๋๋ค.
- allowednamelist ํ์ผ์์ ์ฌ์ฉ์ ์ด๋ฆ์ ํ์ธํ๊ธฐ ์ํด ssh-keygen์ "ssh-keygen -Y match-principals" ๋ช ๋ น์ ์ถ๊ฐํ์ต๋๋ค.
- ssh-add ๋ฐ ssh-agent๋ PIN ์ฝ๋๋ก ๋ณดํธ๋๋ FIDO ํค๋ฅผ ssh-agent์ ์ถ๊ฐํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค(์ธ์ฆ ์ PIN ์์ฒญ์ด ํ์๋จ).
- ssh-keygen์ ์ฌ์ฉํ๋ฉด ์๋ช ์์ฑ ์ค์ ํด์ฑ ์๊ณ ๋ฆฌ์ฆ(sha512 ๋๋ sha256)์ ์ ํํ ์ ์์ต๋๋ค.
- ssh ๋ฐ sshd์์๋ ์ฑ๋ฅ ํฅ์์ ์ํด ๋คํธ์ํฌ ๋ฐ์ดํฐ๋ฅผ ์คํ์ ์ค๊ฐ ๋ฒํผ๋ง์ ์ฐํํ์ฌ ์์ ํจํท์ ๋ฒํผ๋ก ์ง์ ์ฝ์ต๋๋ค. ์์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ฑ๋ ๋ฒํผ์ ์ง์ ๋ฐฐ์นํ๋ ๊ฒ๋ ๋น์ทํ ๋ฐฉ์์ผ๋ก ๊ตฌํ๋ฉ๋๋ค.
- SSH์์ PubkeyAuthentication ์ง์๋ฌธ์ ์ฌ์ฉํ ํ๋กํ ์ฝ ํ์ฅ์ ์ ํํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ธฐ ์ํด ์ง์๋๋ ๋งค๊ฐ๋ณ์ ๋ชฉ๋ก(yes|no|unbound|host-bound)์ ํ์ฅํ์ต๋๋ค.
ํฅํ ๋ฆด๋ฆฌ์ค์์๋ ๋ ๊ฑฐ์ SCP/RCP ํ๋กํ ์ฝ ๋์ SFTP๋ฅผ ์ฌ์ฉํ๋๋ก scp ์ ํธ๋ฆฌํฐ์ ๊ธฐ๋ณธ๊ฐ์ ๋ณ๊ฒฝํ ๊ณํ์
๋๋ค. SFTP๋ ๋ณด๋ค ์์ธก ๊ฐ๋ฅํ ์ด๋ฆ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๊ณ ์๋ ํธ์คํธ ์ธก์ ํ์ผ ์ด๋ฆ์ glob ํจํด์ ์ ์ฒ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฏ๋ก ๋ณด์ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ํนํ, SCP ๋ฐ RCP๋ฅผ ์ฌ์ฉํ ๋ ์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋ผ ํ์ผ๊ณผ ๋๋ ํฐ๋ฆฌ๋ฅผ ๊ฒฐ์ ํ๊ณ ํด๋ผ์ด์ธํธ๋ ๋ฐํ๋ ๊ฐ์ฒด ์ด๋ฆ์ ์ ํ์ฑ๋ง ํ์ธํ๋ฏ๋ก ํด๋ผ์ด์ธํธ ์ธก์์ ์ ์ ํ ํ์ธ์ด ์๋ ๊ฒฝ์ฐ ์์ฒญํ ํ์ผ ์ด๋ฆ๊ณผ ๋ค๋ฅธ ํ์ผ ์ด๋ฆ์ ์ ์กํ๊ธฐ ์ํด ์๋ฒ๋ฅผ ์ฌ์ฉํฉ๋๋ค. SFTP ํ๋กํ ์ฝ์ ์ด๋ฌํ ๋ฌธ์ ๊ฐ ์์ง๋ง "~/"์ ๊ฐ์ ํน์ ๊ฒฝ๋ก์ ํ์ฅ์ ์ง์ํ์ง ์์ต๋๋ค. ์ด๋ฌํ ์ฐจ์ด์ ์ ํด๊ฒฐํ๊ธฐ ์ํด ์ด์ OpenSSH ๋ฆด๋ฆฌ์ค์์๋ SFTP ์๋ฒ ๊ตฌํ์ ~/ ๋ฐ ~user/ ๊ฒฝ๋ก์ ๋ํ ์๋ก์ด SFTP ํ๋กํ ์ฝ ํ์ฅ์ ๋์
ํ์ต๋๋ค.
์ถ์ฒ : opennet.ru