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์ ์ฐ๊ฒฐํ๊ณ , ์ฌ์ฉ์ perseus๊ฐ ํธ์คํธ cetus.example.org์ ์ฐ๊ฒฐํ๊ณ , ์ฌ์ฉ์ medea๊ฐ ์ค๊ฐ ํธ์คํธ scylla.example.org๋ฅผ ํตํด ๋ฆฌ๋๋ ์ ๋๋ ํธ์คํธ charybdis.example.org์ ์ฐ๊ฒฐํ ๋๋ง ์ธ์ฆ์ ์ฌ์ฉํ ์ ์๋ ํค๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ ์ ์์ต๋๋ค. $ ssh-add -h "perseus@cetus.example.org" \ -h "scylla.example.org" \ -h "scylla.example.org>medea@charybdis.example.org" \ ~/.ssh/id_ed25519
- ssh ๋ฐ sshd์์ ์์ ์ปดํจํฐ์ ๋ฌด์ฐจ๋ณ ๋์ ๊ณต๊ฒฉ์ ๊ฐํ ํ์ด๋ธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ "sntrup761x25519-sha512@openssh.com"(ECDH/x25519 + NTRU Prime)์ด ํค ๊ตํ ๋ฐฉ๋ฒ์ ์ ํํ๋ ์์๋ฅผ ๊ฒฐ์ ํ๋ KexAlgorithms ๋ชฉ๋ก์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ถ๊ฐ๋์์ต๋๋ค. 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 ์ ํธ๋ฆฌํฐ๋ ๊ธฐ์กด SCP/RCP ํ๋กํ ์ฝ์ SFTP๋ก ๋์ฒดํ์ฌ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉํ ์์ ์
๋๋ค. SFTP๋ ๋ณด๋ค ์์ธก ๊ฐ๋ฅํ ์ด๋ฆ ์ฒ๋ฆฌ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉฐ, ๋ค๋ฅธ ํธ์คํธ์ ์
ธ์ ํตํด ํ์ผ ์ด๋ฆ์ ๊ธ๋ก๋ธ ํจํด์ ์ฌ์ฉํ๋ ๋ณด์ ์ทจ์ฝ์ ์ ๋ฐฉ์งํฉ๋๋ค. ํนํ SCP์ RCP๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ์๋ฒ๋ ํด๋ผ์ด์ธํธ๋ก ์ ์กํ ํ์ผ๊ณผ ๋๋ ํฐ๋ฆฌ๋ฅผ ๊ฒฐ์ ํ๊ณ , ํด๋ผ์ด์ธํธ๋ ๋ฐํ๋ ๊ฐ์ฒด ์ด๋ฆ์ ์ ํ์ฑ๋ง ํ์ธํฉ๋๋ค. ๋ฐ๋ผ์ ํด๋ผ์ด์ธํธ ์ธก์์ ์ ์ ํ ๊ฒ์ฌ๋ฅผ ์ํํ์ง ์์ผ๋ฉด ๋ณด์ ์นจํด๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ๋ ์ฌ๋ ์์ฒญ๋ ํ์ผ ์ด๋ฆ ์ด์ธ์ ํ์ผ ์ด๋ฆ์ ์ ์กํ ์ ์์ต๋๋ค. SFTP ํ๋กํ ์ฝ์ ์ด๋ฌํ ๋ฌธ์ ๊ฐ ์์ง๋ง, "~/"์ ๊ฐ์ ํน์ ๊ฒฝ๋ก์ ํ์ฅ์ ์ง์ํ์ง ์์ต๋๋ค. ์ด๋ฌํ ์ฐจ์ด์ ์ ํด๊ฒฐํ๊ธฐ ์ํด ์ด์ OpenSSH SFTP ์๋ฒ ๊ตฌํ ๋ฆด๋ฆฌ์ค์์ "~/" ๋ฐ "~user/" ๊ฒฝ๋ก ํ์ฅ์ ์ํ ์๋ก์ด SFTP ํ๋กํ ์ฝ ํ์ฅ ๊ธฐ๋ฅ์ด ์ ์๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru
