Ubuntu22๋ฅผ ์น์๋ฒ๋ก ์ฐ๊ณ ์๋๋ฐ, ํด๋น ์๋ฒ ๊ด๋ฆฌ์๊ฐ ๋ณดํต ssh๋ก ์์ ํ๊ณ ์์ต๋๋ค. ํ์ง๋ง ํ์ฌ๋ ssh key ํ์ธ๋ ์ํ๊ณ ๋น๋ฐ๋ฒํธ ์ ๋ ฅ๋ง์ผ๋ก ๋์ด ์๊ธฐ์ ๋ณด์์์ ์ด ์ ๋ ์์ค์ผ๋ก๋ ์๋๊ฒ ๋ค ์ถ์ด์ OTP ๋์ ์ ๊ฒํ ํ์ต๋๋ค. ๊ทธ ๊ฒฐ๊ณผ Google Authenticator๋ฅผ ์จ์ ํ์ฉํ๊ธฐ๋ก ํ์ง์.
๋ค์์ ๊ทธ ๋ฐฉ๋ฒ๊ณผ ์ ์ฐจ์ ๋ํด์ ์๊ฐํฉ๋๋ค.
SSH ๋ณด์ 2๋จ๊ณ OTP ์ค์
SSH์ ๋ ๋จ๊ณ ์ธ์ฆ (2FA)์ ์ค์ ํ๋ ๊ฒ์ ๊ณ ๊ธ ๋ณด์ ์กฐ์น ์ค ํ๋๋ก, ๋น๋ฐ๋ฒํธ ๋๋ SSH ํค ์ธ์ฆ ์ธ์ ์ถ๊ฐ์ ์ธ ์ธ์ฆ ์๋จ์ ์๊ตฌํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก, Google Authenticator์ ๊ฐ์ ์๊ฐ ๊ธฐ๋ฐ ์ผํ์ฉ ํจ์ค์๋ (TOTP) ์ฑ์ ์ฌ์ฉํ์ฌ ๊ตฌํํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์ SSH์ 2FA๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ๋จ๊ณ๋ณ๋ก ์ค๋ช ํ๊ฒ ์ต๋๋ค.
1. ํ์ํ ์ํํธ์จ์ด ์ค์น
๋จผ์ , ์๋ฒ์ libpam-google-authenticator ํจํค์ง๋ฅผ ์ค์นํฉ๋๋ค. ์ด ํจํค์ง๋ PAM (Pluggable Authentication Module)์ ์ฌ์ฉํ์ฌ Google Authenticator์์ ํตํฉ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
sudo apt update
sudo apt install libpam-google-authenticator
2. ๊ฐ ์ฌ์ฉ์์ Google Authenticator ์ค์
๊ฐ ์ฌ์ฉ์๋ ์์ ์ ๊ณ์ ์์ google-authenticator ๋ช ๋ น์ ์คํํด์ผ ํฉ๋๋ค. ์ด ๋ช ๋ น์ ๊ฐ์ธ ํค๋ฅผ ์์ฑํ๊ณ , ์ด ํค๋ฅผ ๋ฐํ์ผ๋ก QR ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค. ์ฌ์ฉ์๋ ์ค๋งํธํฐ์ Google Authenticator ์ฑ์ ์ค์นํ ํ, ์ด QR ์ฝ๋๋ฅผ ์ค์บํด์ผ ํฉ๋๋ค.
google-authenticator
๋ช ๋ น์ด ์คํ ์ค ๋ค์๊ณผ ๊ฐ์ ์ง๋ฌธ์ ๋ตํด์ผ ํฉ๋๋ค:
- Do you want authentication tokens to be time-based (y/n): y ์ ๋ ฅ
- ์ดํ์ ์ง๋ฌธ๋ค์ ์ฌ์ฉ ํ๊ฒฝ์ ๋ง๊ฒ y ๋๋ **n**์ผ๋ก ๋ต๋ณํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ก๊ทธ์ธ ์๋ง๋ค ์๋ก์ด ์ธ์ฆ ์ฝ๋๊ฐ ์๊ตฌ๋๋๋ก ์ค์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ค์ ๊ณผ์ ์์ ๋ค์๊ณผ ๊ฐ์ ์ง๋ฌธ์ ๋ต๋ณํ์ธ์:
- Time-based (y/n): y
- Update the .google_authenticator file (y/n): y
- Disallow multiple uses (y/n): y
- Increase the window size (y/n): n
- Enable rate-limiting (y/n): y
3. SSH PAM ์ค์ ๋ณ๊ฒฝ
์ด์ SSH ์๋ฒ๊ฐ PAM์ ํตํด 2FA๋ฅผ ์๊ตฌํ๋๋ก /etc/pam.d/sshd ํ์ผ์ ์์ ํด์ผ ํฉ๋๋ค.
sudo nano /etc/pam.d/sshd
ํ์ผ ๋งจ ์๋์ ๋ค์ ์ค์ ์ถ๊ฐํฉ๋๋ค:
auth required pam_google_authenticator.so
4. SSH ๋ฐ๋ชฌ ์ค์ ๋ณ๊ฒฝ
๋ํ, /etc/ssh/sshd_config ํ์ผ์์ PAM์ ํ์ฑํํด์ผ ํฉ๋๋ค.
sudo nano /etc/ssh/sshd_config
๋ค์ ๋ ์ค์ ์ ํ์ธํ๊ฑฐ๋ ์์ ํฉ๋๋ค:
- ChallengeResponseAuthentication yes
- UsePAM yes
- KbdInteractiveAuthentication yes
์์ ์ธ๊ฐ์ง๊ฐ ๋ค ๋์ด์ผ ํฉ๋๋ค.
(์ฐธ๊ณ )
# PasswordAuthentication yes
# AuthenticationMethods publickey,password publickey,keyboard-interactive
์ ๋ถ๋ถ์ ์ ํด๋ ์๊ด์์์.
5. SSH ์๋น์ค ์ฌ์์
๋ชจ๋ ์ค์ ์ ์๋ฃํ ํ์๋ SSH ์๋น์ค๋ฅผ ์ฌ์์ํ์ฌ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํด์ผ ํฉ๋๋ค.
sudo systemctl restart sshd
6. ํ ์คํธ
์ด์ SSH๋ก ์๋ฒ์ ์ ์์ ์๋ํ ๋, ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ํจ์ค์๋(๋๋ SSH ํค) ์ ๋ ฅ ํ, Google Authenticator ์ฑ์์ ์์ฑ๋ 6์๋ฆฌ ์ฝ๋๋ฅผ ์ ๋ ฅํด์ผ ํฉ๋๋ค.
์ด๋ ๊ฒ ์ค์ ํ๋ฉด SSH ์ ์์ ๋ํ ๋ณด์์ด ํฌ๊ฒ ๊ฐํ๋ฉ๋๋ค. ์ด์ค ์ธ์ฆ์ ๋น๋ฐ๋ฒํธ ๋๋ ํค๊ฐ ๋ ธ์ถ๋์์ ๋ ์ถ๊ฐ์ ์ธ ๋ณด์ ๊ณ์ธต์ ์ ๊ณตํ์ฌ ๋ฌด๋จ ์ ๊ทผ์ ๋ฐฉ์งํฉ๋๋ค.
(์ฐธ๊ณ )
ํ์ํ์ง ๋ชจ๋ฅด์ง๋ง, ์๋ ๋ ํ๋ ๊ฒ๋ค
chmod 600 ~/.google_authenticator
์๊ฐ ๋๊ธฐํ ํ์ธ
์๋ฒ์ ํด๋ผ์ด์ธํธ(์ฆ, Google Authenticator ์ฑ์ด ์ค์น๋ ๊ธฐ๊ธฐ)์ ์๊ฐ์ด ์ ํํ๊ฒ ๋๊ธฐํ๋์ด ์๋์ง ํ์ธํ์ธ์.
์๋ฒ ์๊ฐ ๋๊ธฐํ
์๋ฒ์์ NTP(Network Time Protocol)๋ฅผ ์ฌ์ฉํ์ฌ ์๊ฐ์ ๋๊ธฐํํฉ๋๋ค.
sudo apt-get install ntp
sudo systemctl enable ntp
sudo systemctl start ntp
NTP๊ฐ ์ค์น ๋ฐ ์์๋ ํ, ์๋ฒ์ ์๊ฐ์ ํ์ธํ๊ณ ๋๊ธฐํ ์ํ๋ฅผ ์ ๊ฒํฉ๋๋ค.
ntpq -p
ํด๋ผ์ด์ธํธ ์๊ฐ ๋๊ธฐํ
Google Authenticator ์ฑ์ด ์ค์น๋ ๊ธฐ๊ธฐ(์: ์ค๋งํธํฐ)์์ ์๊ฐ์ด ์ ํํ๊ฒ ๋๊ธฐํ๋์ด ์๋์ง ํ์ธํฉ๋๋ค. ๋๋ถ๋ถ์ ์ค๋งํธํฐ์ ์ธํฐ๋ท์ ํตํด ์๋์ผ๋ก ์๊ฐ์ ๋๊ธฐํํฉ๋๋ค.
'IT-Engineering > Linux' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ฐ๋ถํฌUbuntu ํจํค์ง ์ค์น์ ์์ฃผ ๋จ๋ ํ๋ฉด? ์? (0) | 2024.10.18 |
---|---|
mysql Error: Access denied for user 'root'@'localhost' ์์ ํด๊ฒฐ (0) | 2023.08.23 |
์ฐ๋ถํฌ Ubuntu 18.04์์ mysql5.7 ์์ ์ญ์ ๋ฐ ์ฌ์ค์น (0) | 2023.08.23 |
Singularity ์ด์ ๋ฒ์ Old version ์ญ์ remove (0) | 2021.10.05 |
๋ฆฌ๋ ์ค(Linux) ์ฐ๋ถํฌ(Ubuntu) Singularity ์ค์น ๋ฐฉ๋ฒ (0) | 2021.10.02 |
๋๊ธ