SSH 2.0 ๋ฐ SFTP์ฉ ์คํ ์์ค ํด๋ผ์ด์ธํธ ๋ฐ ์๋ฒ ๊ตฌํ์ธ OpenSSH 10.6์ด ์ถ์๋์์ต๋๋ค. AI ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์ฝ๋ ๋ถ์์ ํตํด ๋๋ถ๋ถ ๋ฐ๊ฒฌ๋ ๋ณด์ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค(CVE ์๋ณ์๋ ํ ๋น๋์ง ์์).
- SFTP์ ์ทจ์ฝ์ ์ผ๋ก ์ธํด ๊ณต๊ฒฉ์๊ฐ ์ ์ดํ๋ โโ์๋ฒ์ ์ ๊ทผํ ๋ ํ์ผ์ด ๋์ ๋๋ ํฐ๋ฆฌ ์ธ๋ถ์ ๊ธฐ๋ก๋ ์ ์์ต๋๋ค.
- sshd์ GSSAPI ๊ตฌํ์์ ๋ ๊ฐ์ง ์ทจ์ฝ์ ์ด ๋ฐ๊ฒฌ๋์๋๋ฐ, ์ด๋ ์ธ์ฆ ์๋ ๊ฐ ์ํ ์ง์์ผ๋ก ์ธํด ๋ฐ์ํ์ต๋๋ค. GSSAPI ์๊ฒฉ ์ฆ๋ช ์ด ์ธ์ฆ ์คํจ ํ์๋ ๋จ์ ์๋ค๊ฐ ์ดํ ์ธ์ฆ ์ฑ๊ณต ์์ ์ฌ์ฉ๋ ์ ์์์ต๋๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ GSSAPIAuthentication ์ค์ ์ด ํ์ฑํ๋ ๊ฒฝ์ฐ์ ๋ํ๋ฉ๋๋ค.
- sshd์ ssh์์๋ LZ77 ์์ถ ์ง์์ด ๋นํ์ฑํ๋์ด ์๋๋ฐ, ์ด๋ ์ฌ์ด๋ ์ฑ๋ ๊ณต๊ฒฉ ๊ฐ๋ฅ์ฑ ๋๋ฌธ์ ๋๋ค. ์ด ๊ณต๊ฒฉ์ ํผํด์์ ๊ณต์ ๋ค์คํ ์ฐ๊ฒฐ์ ํตํด ์ฐ๊ฒฐ๋ ๊ฒฝ์ฐ, ๊ณต๊ฒฉ์๊ฐ ์ ์ดํ๋ โโ์ ๋ ฅ์ด ์ ์ก๋๋ ์ํธํ ๋ฉ์์ง์ ์ ์ฒด ๊ธธ์ด์ ์ํฅ์ ๋ฏธ์น๋ค๋ ์ ์ ์ ์ฉํ์ฌ ๋ค๋ฅธ ์ธ์ ์ ์ฝํ ์ธ ๋ฅผ ๋ณต๊ตฌํ ์ ์๋๋ก ํฉ๋๋ค (LZ77์ ๋ชจ๋ ์ฑ๋์์ ๊ณต์ ๋๋ ๋ฒํผ์์ ๋ฐ๋ณต๋๋ ๋ฌธ์์ด์ ์ฐธ์กฐ๋ก ๋์ฒดํฉ๋๋ค).
- ssh ์ ํธ๋ฆฌํฐ๋ ๋ช ๋ น์ค์ ์ ๋ ฅํ๋ ์ฌ์ฉ์ ์ด๋ฆ์ '$' ๋ฐ '\' ๋ฌธ์์ ์ฌ์ฉ์ ๊ธ์งํฉ๋๋ค. ์ด๋ฌํ ๋ฌธ์๋ ์ค์ ์ ์ง์ ๋ ProxyCommand ๋ฐ Match ์คํ ์ง์๋ฌธ์ ์ด๋ฆ์ ๋์ฒดํ ๋ ์ฝ๋๋ฅผ ์คํํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ssh-keygen์์ ์ผ๊ด ์ ์ฝ ์๊ฐ ์ฒ๋ฆฌ ์ค๋ฅ๋ก ์ธํด ์ธ์ฆ์ ๋ง๋ฃ์ผ์ด 1์๊ฐ ๋ฆ์ด์ง๋ ๋ฌธ์ ๊ฐ ์์ ๋์์ต๋๋ค.
- sshd์ ssh์์ zip ํญํ ์์ฑ์ ์ฐจ๋จํ๊ธฐ ์ํด ๋ฐ์ดํฐ ์์ถ ํด์ ์ ์ต๋ ํจํท ํฌ๊ธฐ ์ด๊ณผ ์ฌ๋ถ๋ฅผ ํ์ธํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- sshd์์ authorized_keys ํ์ผ์ "restrict" ํค์๋ ์ ํ์ด ๋ฌด์๋๊ณ ํฐ๋(PermitTunnel)์ ์ ์ฉ๋์ง ์๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
- sshd์์ "none" ์ต์ ์ด Match ๋ธ๋ก ๋ด์์ ์๋ชป ๊ตฌ๋ฌธ ๋ถ์๋๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค. ์ด์ ์๋ AuthorizedPrincipalsFile๊ณผ ๊ฐ์ ์ผ๋ถ ์ง์๋ฌธ์์ ์ด ์ต์ ์ด ์ง์๋ฌธ์ด ๋นํ์ฑํ๋์์์ ๋ํ๋ด๋ ๊ฒ์ด ์๋๋ผ ํ์ผ ์ด๋ฆ์ผ๋ก ํด์๋์์ต๋๋ค.
- ํ์ผ ๋์คํฌ๋ฆฝํฐ ์ ๋ฌ์ ์ง์ํ์ง ์๊ณ PTY ํ ๋น์ ๋ฃจํธ ๊ถํ์ด ํ์ํ ํ๋ซํผ์์ ๋ฃจํธ ๊ถํ์ด ํด์ ๋์ง ์๋ sshd์ ๋ฒ๊ทธ๋ฅผ ์์ ํ์ต๋๋ค. ์ด ๋ฌธ์ ๋ QNX 6, SCO OpenServer 5 ๋ฐ "--disable-fd-passing" ์ต์ ์ ์ฌ์ฉํ์ฌ ๋น๋ํ ๋ ๋ฐ์ํฉ๋๋ค.
์ทจ์ฝ์ ๊ณผ ๊ด๋ จ ์๋ ๋ณ๊ฒฝ ์ฌํญ:
- ์์ ์ปดํจํฐ์ ๋ํ ๋ฌด์ฐจ๋ณ ๋์ ๊ณต๊ฒฉ์ ๊ฐํ ssh-mldsa44-ed25519 ํ์ด๋ธ๋ฆฌ๋ ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ๋ํ ์ง์์ด ํ์ฑํ๋์์ต๋๋ค.
- WarnWeakCrypto ์ต์ ์ ์์ ๋ด์ฑ์ด ์๋ ํค ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐ์ด ์ค์ ๋ ๋ ๊ฒฝ๊ณ ๋ฅผ ํ์ํ ์ง ์ฌ๋ถ๋ฅผ ์ ์ดํ๊ธฐ ์ํด sshd_config์ ๊ตฌํ๋์์ผ๋ฉฐ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ด ์์ต๋๋ค.
- ssh-keygen ๋ฐ ssh-add๋ FIDO ํ ํฐ์ ์ ์ฅ๋ ํค์ ์ ๊ทผํ๊ธฐ ์ ์ ์๊ฒฉ ์ฆ๋ช ์ ๋ํ credProtect ์ ์ฑ ๊ฒ์ฌ๋ฅผ ์ํํ์ฌ ๊ฒ์ฆ ์๊ตฌ ์ฌํญ(PIN ๋๋ ์์ฒด ์ธ์)์ ์ถฉ์กฑํ๋์ง ํ์ธํฉ๋๋ค.
- FIDO ๋ฐ PKCS#11 ํ ํฐ์ ๋ํ ์ ํ์ PIN ์ ๋ ฅ์ ๊ฑด๋๋ฐ๋๋ก ssh-add์ "-P" ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- SSH์์ `~I` ๋ช ๋ น์ด๋ ๋ก์ปฌ ์์คํ ๊ณผ ์๊ฒฉ ์์คํ ์ ๋ฒ์ โโ์ ๋ณด๋ฅผ ํ์ํฉ๋๋ค.
- SFTP์์๋ ํ์ํ ๊ฒฝ์ฐ ๋๋ ํฐ๋ฆฌ๋ฅผ ์์ฑํ๊ธฐ ์ํด mkdir/lmkdir ๋ช ๋ น์ '-p' ํ๋๊ทธ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- ssh-keygen์ ํค๋ฅผ 16์ง์ ๋คํ ํ์์ผ๋ก ๋ด๋ณด๋ผ ์ ์๋ "hexdump" ๋ชจ๋๊ฐ ์ถ๊ฐ๋์์ต๋๋ค(์: ๋ฌธ์์ ๋ถ์ฌ๋ฃ๊ธฐ ์ํด).
- ssh ๋ฐ sshd์์ ChannelTimeout ์ง์๋ฌธ์ ์ฌ์ฉํ๋ฉด ์์์ ์ดํ ์ด ๋จ์๊น์ง ์ ํํ๊ฒ ํ์์์์ ์ง์ ํ ์ ์์ต๋๋ค.
- sshd์ AgentSocketPath ์ต์ ์ ์ถ๊ฐํ์ฌ ์์ด์ ํธ๋ฅผ ํฌ์๋ฉํ ๋ $SSH_AUTH_SOCK์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํ ์ ์๋๋ก ํ์ต๋๋ค(์: $HOME์ ํ์ ๋๋ ํฐ๋ฆฌ์ ๊ฒฝ์ฐ user:.ssh/agent, ๊ณต์ ๋๋ ํฐ๋ฆฌ์ ๊ฒฝ์ฐ shared:/tmp).
- ssh-agent์๋ ์์ด์ ํธ ์์ผ์ด ์๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ง์ ํ๋ "-A" ํ๋๊ทธ๊ฐ ์์ผ๋ฉฐ, ์ด๋ฅผ ํตํด AgentSocketPath ์ต์ ์์์ฒ๋ผ "user:" ๋ฐ "shared:" ์ ๋์ฌ๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
- sshd์์ ๊ณต๊ฐ ํค ๊ฒ์ฆ์ ์ด์ ์ธ์ฆ ์๋์ ๋ถ๋ฆฌ๋์์ต๋๋ค. "PubkeyOptions max-pk-ok:nnnn" ์ต์ ์ด ์ถ๊ฐ๋์ด MaxAuthTries ์ ํ์ ๋ฐ๋ผ ๊ณต๊ฐ ํค ๊ฒ์ฆ ์๋ ํ์(๊ธฐ๋ณธ๊ฐ 6ํ)๋ฅผ ์ค์ ํ๊ณ , ์ด ํ์ ์ด๊ณผ ์ ์ฐ๊ฒฐ์ด ์ข ๋ฃ๋ฉ๋๋ค.
- ssh ๋ฐ sshd์์ TCPKeepAlive ์ต์ ์ ์ด์ "all" ๊ฐ์ ์ง์ํฉ๋๋ค. ์ด ๊ฐ์ ์ฌ์ฉํ๋ฉด ๊ธฐ๋ณธ ์ฐ๊ฒฐ๋ฟ๋ง ์๋๋ผ ํด๋น ์ฐ๊ฒฐ์ ํตํด ์ ๋ฌ๋๋ ์ฐ๊ฒฐ์ ๋ํด์๋ keepalive ํจํท์ ๋ณด๋ผ ์ ์์ต๋๋ค.
์ถ์ฒ : opennet.ru
