8.7๊ฐœ์›” ๊ฐ„์˜ ๊ฐœ๋ฐœ ๋์— SSH 2.0 ๋ฐ SFTP ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•œ ์ž‘์—…์„ ์œ„ํ•œ ํด๋ผ์ด์–ธํŠธ ๋ฐ ์„œ๋ฒ„์˜ ๊ฐœ๋ฐฉํ˜• ๊ตฌํ˜„์ธ OpenSSH XNUMX์ด ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ :

  • ๊ธฐ์กด SCP/RCP ํ”„๋กœํ† ์ฝœ ๋Œ€์‹  SFTP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ—˜์ ์ธ ๋ฐ์ดํ„ฐ ์ „์†ก ๋ชจ๋“œ๊ฐ€ scp์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. SFTP๋Š” ๋ณด๋‹ค ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์ด๋ฆ„ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ณ  ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ ์ธก์—์„œ glob ํŒจํ„ด์˜ ์‰˜ ์ฒ˜๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ณด์•ˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. scp์—์„œ SFTP๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด "-s" ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ œ์•ˆ๋˜์—ˆ์ง€๋งŒ ์•ž์œผ๋กœ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด ํ”„๋กœํ† ์ฝœ๋กœ ์ „ํ™˜ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.
  • sftp-server๋Š” scp์— ํ•„์š”ํ•œ ~/ ๋ฐ ~user/ ๊ฒฝ๋กœ๋ฅผ ํ™•์žฅํ•˜๊ธฐ ์œ„ํ•ด SFTP ํ”„๋กœํ† ์ฝœ์— ๋Œ€ํ•œ ํ™•์žฅ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
  • scp ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” ๋‘ ๊ฐœ์˜ ์›๊ฒฉ ํ˜ธ์ŠคํŠธ(์˜ˆ: "scp ํ˜ธ์ŠคํŠธ-a:/๊ฒฝ๋กœ ํ˜ธ์ŠคํŠธ-b:") ๊ฐ„์— ํŒŒ์ผ์„ ๋ณต์‚ฌํ•  ๋•Œ ๋™์ž‘์„ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ž‘์—…์€ ์ด์ œ "๋ฅผ ์ง€์ •ํ•  ๋•Œ์ฒ˜๋Ÿผ ์ค‘๊ฐ„ ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. -3โ€ ํ”Œ๋ž˜๊ทธ. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฒซ ๋ฒˆ์งธ ํ˜ธ์ŠคํŠธ์— ๋ถˆํ•„์š”ํ•œ ์ž๊ฒฉ ์ฆ๋ช…์„ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ์…ธ(์†Œ์Šค, ๋Œ€์ƒ ๋ฐ ๋กœ์ปฌ ์‹œ์Šคํ…œ ์ธก)์—์„œ ํŒŒ์ผ ์ด๋ฆ„์˜ ์‚ผ์ค‘ ํ•ด์„์„ ํ”ผํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ SFTP๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์›๊ฒฉ ์•ก์„ธ์Šค ์‹œ ๋ชจ๋“  ์ธ์ฆ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„๋Œ€ํ™”ํ˜• ๋ฉ”์„œ๋“œ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ˜ธ์ŠคํŠธ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์ด์ „ ๋™์ž‘์„ ๋ณต์›ํ•˜๊ธฐ ์œ„ํ•ด "-R" ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • "-f" ํ”Œ๋ž˜๊ทธ์— ํ•ด๋‹นํ•˜๋Š” SSH์— ForkAfterAuthentication ์„ค์ •์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • "-n" ํ”Œ๋ž˜๊ทธ์— ํ•ด๋‹นํ•˜๋Š” StdinNull ์„ค์ •์„ ssh์— ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • SessionType ์„ค์ •์ด ssh์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด "-N"(์„ธ์…˜ ์—†์Œ) ๋ฐ "-s"(ํ•˜์œ„ ์‹œ์Šคํ…œ) ํ”Œ๋ž˜๊ทธ์— ํ•ด๋‹นํ•˜๋Š” ๋ชจ๋“œ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ssh-keygen์„ ์‚ฌ์šฉํ•˜๋ฉด ํ‚ค ํŒŒ์ผ์—์„œ ํ‚ค ์œ ํšจ ๊ฐ„๊ฒฉ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • sshsig ์„œ๋ช…์˜ ์ผ๋ถ€๋กœ ์ „์ฒด ๊ณต๊ฐœ ํ‚ค๋ฅผ ์ธ์‡„ํ•˜๊ธฐ ์œ„ํ•ด ssh-keygen์— "-Oprint-pubkey" ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ssh ๋ฐ sshd์—์„œ๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๋ชจ๋‘ ๋”ฐ์˜ดํ‘œ, ๊ณต๋ฐฑ ๋ฐ ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์…ธ๊ณผ ์œ ์‚ฌํ•œ ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜๋Š” ๋ณด๋‹ค ์ œํ•œ์ ์ธ ๊ตฌ์„ฑ ํŒŒ์ผ ํŒŒ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ด๋™๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ƒˆ ํŒŒ์„œ๋Š” ์˜ต์…˜์—์„œ ์ธ์ˆ˜ ์ƒ๋žต(์˜ˆ: DenyUsers ์ง€์‹œ์–ด๋Š” ๋” ์ด์ƒ ๋น„์›Œ ๋‘˜ ์ˆ˜ ์—†์Œ), ๋‹ซํžˆ์ง€ ์•Š์€ ๋”ฐ์˜ดํ‘œ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ = ๋ฌธ์ž ์ง€์ •๊ณผ ๊ฐ™์€ ์ด์ „ ๊ฐ€์ •์„ ๋ฌด์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ํ‚ค๋ฅผ ํ™•์ธํ•  ๋•Œ SSHFP DNS ๋ ˆ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด์ œ ssh๋Š” ํŠน์ • ์œ ํ˜•์˜ ๋””์ง€ํ„ธ ์„œ๋ช…์ด ํฌํ•จ๋œ ๋ ˆ์ฝ”๋“œ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ผ์น˜ํ•˜๋Š” ๋ชจ๋“  ๋ ˆ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • ssh-keygen์—์„œ -Ochallenge ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ FIDO ํ‚ค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์ด์ œ libfido2 ๋Œ€์‹  ๋‚ด์žฅ ๋ ˆ์ด์–ด๊ฐ€ ํ•ด์‹ฑ์— ์‚ฌ์šฉ๋˜๋ฏ€๋กœ 32๋ฐ”์ดํŠธ๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ์ž‘์€ ์ฑŒ๋ฆฐ์ง€ ์‹œํ€€์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • sshd์—์„œauthorized_keys ํŒŒ์ผ์˜ Environment="..." ์ง€์‹œ๋ฌธ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์ด์ œ ์ฒซ ๋ฒˆ์งธ ์ผ์น˜ ํ•ญ๋ชฉ์ด ํ—ˆ์šฉ๋˜๋ฉฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ด๋ฆ„์€ 1024๊ฐœ๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.

OpenSSH ๊ฐœ๋ฐœ์ž๋“ค์€ ๋˜ํ•œ ์ฃผ์–ด์ง„ ์ ‘๋‘์‚ฌ๋ฅผ ์‚ฌ์šฉํ•œ ์ถฉ๋Œ ๊ณต๊ฒฉ์˜ ํšจ์œจ์„ฑ ์ฆ๊ฐ€๋กœ ์ธํ•ด SHA-1 ํ•ด์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ถ„ํ•ด์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค(์ถฉ๋Œ ์„ ํƒ ๋น„์šฉ์€ ์•ฝ 50๋งŒ ๋‹ฌ๋Ÿฌ๋กœ ์ถ”์‚ฐ๋ฉ๋‹ˆ๋‹ค). ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” SSH ํ”„๋กœํ† ์ฝœ์— ๋Œ€ํ•œ ์›๋ž˜ RFC์—์„œ ์–ธ๊ธ‰๋˜์—ˆ์œผ๋ฉฐ ์‹ค์ œ๋กœ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๊ณต๊ฐœ ํ‚ค ๋””์ง€ํ„ธ ์„œ๋ช… ์•Œ๊ณ ๋ฆฌ์ฆ˜ "ssh-rsa"๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ์—์„œ ssh-rsa ์‚ฌ์šฉ์„ ํ…Œ์ŠคํŠธํ•˜๋ ค๋ฉด "-oHostKeyAlgorithms=-ssh-rsa" ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ssh๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์‹œ์—, ๊ธฐ๋ณธ์ ์œผ๋กœ "ssh-rsa" ๋””์ง€ํ„ธ ์„œ๋ช…์„ ๋น„ํ™œ์„ฑํ™”ํ•œ๋‹ค๊ณ  ํ•ด์„œ RSA ํ‚ค ์‚ฌ์šฉ์ด ์™„์ „ํžˆ ์ค‘๋‹จ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. SSH ํ”„๋กœํ† ์ฝœ์€ SHA-1 ์™ธ์—๋„ ๋‹ค๋ฅธ ํ•ด์‹œ ๊ณ„์‚ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‚ฌ์šฉ์„ ํ—ˆ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ, "ssh-rsa" ์™ธ์—๋„ "rsa-sha2-256"(RSA/SHA256) ๋ฐ "rsa-sha2-512"(RSA/SHA512) ๋ฒˆ๋“ค์„ ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ์˜ ์›ํ™œํ•œ ์ „ํ™˜์„ ์œ„ํ•ด OpenSSH์—์„œ๋Š” ์ด์ „์— UpdateHostKeys ์„ค์ •์„ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”ํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‹ค ์•ˆ์ •์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์ž๋™ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์„ค์ •์„ ์‚ฌ์šฉํ•˜๋ฉด ํŠน์ˆ˜ ํ”„๋กœํ† ์ฝœ ํ™•์žฅ์ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.[์ด๋ฉ”์ผ ๋ณดํ˜ธ]"๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ธ์ฆ ํ›„ ์„œ๋ฒ„๊ฐ€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ํ˜ธ์ŠคํŠธ ํ‚ค์— ๋Œ€ํ•ด ํด๋ผ์ด์–ธํŠธ์— ์•Œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ~/.ssh/known_hosts ํŒŒ์ผ์— ์ด๋Ÿฌํ•œ ํ‚ค๋ฅผ ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ˜ธ์ŠคํŠธ ํ‚ค๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์„œ๋ฒ„์—์„œ ํ‚ค๋ฅผ ๋” ์‰ฝ๊ฒŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

UpdateHostKeys ์‚ฌ์šฉ์€ ๋‚˜์ค‘์— ์ œ๊ฑฐ๋  ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ์ฃผ์˜ ์‚ฌํ•ญ์œผ๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ํ‚ค๋Š” UserKnownHostsFile์—์„œ ์ฐธ์กฐ๋˜์–ด์•ผ ํ•˜๋ฉฐ GlobalKnownHostsFile์—์„œ๋Š” ์‚ฌ์šฉ๋˜์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ํ‚ค๋Š” ํ•˜๋‚˜์˜ ์ด๋ฆ„์œผ๋กœ๋งŒ ์กด์žฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŠธ ํ‚ค ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์œผ๋กœ ์•Œ๋ ค์ง„ ํ˜ธ์ŠคํŠธ ๋งˆ์Šคํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. verifyHostKeyDNS ์„ค์ •์„ ๋น„ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. UserKnownHostsFile ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ํ™œ์„ฑ ์ƒํƒœ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์— ๊ถŒ์žฅ๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์—๋Š” RFC2 ๊ธฐ๋ฐ˜์˜ rsa-sha256-512/8332 RSA SHA-2(OpenSSH 7.2๋ถ€ํ„ฐ ์ง€์›๋˜๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ๋จ), ssh-ed25519(OpenSSH 6.5๋ถ€ํ„ฐ ์ง€์›) ๋ฐ ecdsa-sha2-nistp256/384/521 ๊ธฐ๋ฐ˜์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. RFC5656 ECDSA(OpenSSH 5.7๋ถ€ํ„ฐ ์ง€์›).

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€