SSH์— ๋Œ€ํ•œ XNUMX๋‹จ๊ณ„ ์ธ์ฆ

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

์ธ์ฆ์€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฃจ์–ด์ง€์ง€๋งŒ ๊ฐœ๋ฐœ์ž์™€ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๋Š” ์ „ํ†ต์ ์œผ๋กœ SSH ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ๊ฐœ์ธํ‚ค๊ฐ€ ๋„๋‚œ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด๋‹ค. ์•”ํ˜ธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์ด๋ก ์ ์œผ๋กœ ๊ฐœ์ธ ํ‚ค ๋„๋‚œ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ํ‚ค๋ฅผ ์ „๋‹ฌํ•˜๊ณ  ์บ์‹ฑํ•  ๋•Œ ํ™•์ธ ์—†์ด๋„ ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ค‘ ์ธ์ฆ์€ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

์ด์ค‘ ์ธ์ฆ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•

Honeycomb์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ตœ๊ทผ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์ง€์นจ, ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„์— ์ ์ ˆํ•œ ์ธํ”„๋ผ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•.

์ง€์นจ์—์„œ๋Š” ์ธํ„ฐ๋„ท์— ์—ด๋ ค ์žˆ๋Š” ํŠน์ • ๊ธฐ๋ณธ ํ˜ธ์ŠคํŠธ(์š”์ƒˆ)๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ๋…ธํŠธ๋ถ์ด๋‚˜ ์ปดํ“จํ„ฐ์—์„œ ์ด ํ˜ธ์ŠคํŠธ์— ์—ฐ๊ฒฐํ•˜๊ณ  ๊ทธ ๋’ค์— ์žˆ๋Š” ๋‹ค๋ฅธ ๋ชจ๋“  ์žฅ์น˜์— ์•ก์„ธ์Šคํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 2FA๋Š” ๊ณต๊ฒฉ์ž๊ฐ€ ๋งฌ์›จ์–ด ์„ค์น˜ ๋“ฑ์„ ํ†ตํ•ด ๋…ธํŠธ๋ถ์— ์•ก์„ธ์Šคํ•˜๋”๋ผ๋„ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ์˜ต์…˜์€ OTP์ž…๋‹ˆ๋‹ค.

OTP - ์ผํšŒ์šฉ ๋””์ง€ํ„ธ ๋น„๋ฐ€๋ฒˆํ˜ธ. ์ด ๊ฒฝ์šฐ ํ‚ค์™€ ํ•จ๊ป˜ SSH ์ธ์ฆ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋“ค์€ ๊ณต๊ฒฉ์ž๊ฐ€ ๊ฐ€์งœ ์š”์ƒˆ๋ฅผ ์„ธ์šฐ๊ณ  OTP๋ฅผ ๊ฐ€๋กœ์ฑ„์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์ด ์ด์ƒ์ ์ธ ์˜ต์…˜์ด ์•„๋‹ˆ๋ผ๊ณ  ์ผ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์•„๋ฌด๊ฒƒ๋„ ์—†๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” ๋‚ซ์Šต๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ ์„œ๋ฒ„ ์ธก์—์„œ๋Š” ๋‹ค์Œ ์ค„์ด Chef ๊ตฌ์„ฑ์— ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค.

  • metadata.rb
  • attributes/default.rb ~์˜ attributes.rb)
  • files/sshd
  • recipes/default.rb (๋‹ค์Œ์—์„œ ๋ณต์‚ฌ recipe.rb)
  • templates/default/users.oath.erb

๋ชจ๋“  OTP ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ํด๋ผ์ด์–ธํŠธ ์ธก์— ์„ค์น˜๋ฉ๋‹ˆ๋‹ค: Google Authenticator, Authy, Duo, Lastpass๊ฐ€ ์„ค์น˜๋จ brew install oath-toolkit ๋˜๋Š” apt install oathtool openssl, ์ž„์˜์˜ base16 ๋ฌธ์ž์—ด(ํ‚ค)์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋ฐ”์ผ ์ธ์ฆ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” Base32 ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜๋˜์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์ง์ ‘ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ์ ์œผ๋กœ Bastion์— ์—ฐ๊ฒฐํ•˜๋ฉด ์ด์ œ ์•”ํ˜ธ ๋ฌธ๊ตฌ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ธ์ฆ์„ ์œ„ํ•œ OTP ์ฝ”๋“œ๋„ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โžœ ssh -A bastion
Enter passphrase for key '[snip]': 
One-time password (OATH) for '[user]': 
Welcome to Ubuntu 18.04.1 LTS...

๋‘ ๋ฒˆ์งธ ์˜ต์…˜์€ ํ•˜๋“œ์›จ์–ด ์ธ์ฆ์ž…๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ ๋‘ ๋ฒˆ์งธ ์š”์†Œ๋Š” ํ•˜๋“œ์›จ์–ด ์žฅ์น˜๋‚˜ ์ƒ์ฒด ์ธ์‹์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž๋Š” ๋งค๋ฒˆ OTP ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ Chef ๊ตฌ์„ฑ์€ ์ข€ ๋” ๋ณต์žกํ•˜๋ฉฐ ํด๋ผ์ด์–ธํŠธ ๊ตฌ์„ฑ์€ OS์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋“  ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ•œ ํ›„ MacOS์˜ ํด๋ผ์ด์–ธํŠธ๋Š” ์•”ํ˜ธ ๋ฌธ๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์„ผ์„œ์— ์†๊ฐ€๋ฝ์„ ๋Œ€๋ฉด SSH์—์„œ ์ธ์ฆ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋‘ ๋ฒˆ์งธ ์š”์†Œ).

iOS ๋ฐ Android ์†Œ์œ ์ž๊ฐ€ ๋กœ๊ทธ์ธ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์Šค๋งˆํŠธํฐ ๋ฒ„ํŠผ ํ•˜๋‚˜๋งŒ ๋ˆ„๋ฅด๋ฉด. ์ด๋Š” OTP๋ณด๋‹ค ๋”์šฑ ์•ˆ์ „ํ•œ Krypt.co์˜ ํŠน๋ณ„ํ•œ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.

Linux/ChromeOS์—๋Š” YubiKey USB ํ† ํฐ์„ ์‚ฌ์šฉํ•˜๋Š” ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๊ณต๊ฒฉ์ž๊ฐ€ ํ† ํฐ์„ ํ›”์น  ์ˆ˜ ์žˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์•”ํ˜ธ๋ฅผ ๋ชจ๋ฆ…๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

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