웹사이트 검색

Fedora에서 SSH에 대한 2단계 인증을 설정하는 방법


매일 우리 데이터가 위험에 처한 곳에서 많은 보안 위반이 보고되는 것 같습니다. SSH가 Linux 시스템에 원격으로 연결을 설정하는 안전한 방법이라는 사실에도 불구하고 비밀번호를 비활성화하거나 SSH 연결만 허용하더라도 알 수 없는 사용자가 SSH 키를 훔쳐 Linux 시스템에 액세스할 수 있습니다. 공개 키와 개인 키.

이 문서에서는 Google Authenticator를 사용하여 Fedora Linux 배포판에서 SSH에 대한 2단계 인증(2FA)을 설정하여 액세스하는 방법을 설명합니다. 모바일 기기의 인증 애플리케이션에 의해 무작위로 생성된 TOTP(시간 기반 일회용 비밀번호) 번호를 제공하여 원격 Linux 시스템을 더욱 안전하게 보호합니다.

추가 읽기: CentOS 및 Debian에서 SSH 로그인에 대한 2단계 인증을 설정하는 방법

TOTP 알고리즘과 호환되는 모바일 장치용 양방향 인증 애플리케이션을 사용할 수 있습니다. TOTPGoogle Authenticator를 지원하는 Android 또는 IOS용 무료 앱이 많이 있지만 이 문서에서는 Google Authenticator를 예로 사용합니다.

Fedora에 Google OTP 설치

먼저 다음 dnf 명령을 사용하여 Fedora 서버에 Google Authenticator 애플리케이션을 설치합니다.

sudo dnf install -y google-authenticator

Google OTP가 설치되면 이제 애플리케이션을 실행할 수 있습니다.

google-authenticator

응용 프로그램은 여러 가지 질문을 묻는 메시지를 표시합니다. 다음 스니펫은 합리적으로 안전한 설정에 응답하는 방법을 보여줍니다.

Do you want authentication tokens to be time-based (y/n) y Do you want me to update your "/home/user/.google_authenticator" file (y/n)? y

이 애플리케이션은 비밀 키, 인증 코드, 복구 코드를 제공합니다. 이 키는 모바일 장치를 분실한 경우 서버에 액세스할 수 있는 유일한 방법이므로 안전하고 안전한 위치에 보관하십시오.

휴대폰 인증 설정

휴대폰에서 Google Play 또는 iTunes 앱 스토어로 이동하여 Google Authenticator를 검색하고 애플리케이션을 설치하세요.

이제 휴대폰에서 Google Authenticator 애플리케이션을 열고 Fedora 터미널 화면에 표시된 QR 코드를 스캔하세요. QR 코드 스캔이 완료되면 인증 응용 프로그램에서 무작위로 생성된 번호를 받게 되며 Fedora 서버에 원격으로 연결할 때마다 이 번호를 사용합니다.

Google OTP 구성 완료

Google Authenticator 애플리케이션은 추가 질문을 표시하며 다음 예에서는 보안 구성을 설정하기 위해 질문에 대답하는 방법을 보여줍니다.

이제 아래 설명된 대로 새로운 양방향 인증을 사용하도록 SSH를 구성해야 합니다.

Google OTP를 사용하도록 SSH 구성

인증자 애플리케이션을 사용하도록 SSH를 구성하려면 먼저 공개 SSH 키를 사용하여 SSH 연결이 작동해야 합니다. 비밀번호 연결이 비활성화되기 때문입니다.

서버에서 /etc/pam.d/sshd 파일을 엽니다.

sudo vi /etc/pam.d/sshd

파일의 auth 하위 스택 비밀번호-인증 줄을 주석 처리합니다.

#auth       substack     password-auth

그런 다음 파일 끝에 다음 줄을 배치합니다.

auth sufficient pam_google_authenticator.so

파일을 저장하고 닫습니다.

그런 다음 /etc/ssh/sshd_config 파일을 열고 편집합니다.

sudo vi /etc/ssh/sshd_config

ChallengeResponseAuthentication 줄을 검색하여 yes로 변경합니다.

ChallengeResponseAuthentication yes

PasswordAuthentication 줄을 검색하여 no로 변경합니다.

PasswordAuthentication no

그런 다음 파일 끝에 다음 줄을 배치합니다.

AuthenticationMethods publickey,password publickey,keyboard-interactive

파일을 저장하고 닫은 후 SSH를 다시 시작하세요.

sudo systemctl restart sshd

Fedora에서 이중 인증 테스트

이제 원격으로 서버에 연결을 시도하면 인증 코드를 입력하라는 메시지가 표시됩니다.

ssh [email 

Verification code:

인증 코드는 인증 애플리케이션에 의해 휴대폰에서 무작위로 생성됩니다. 생성된 코드는 몇 초마다 변경되므로 새 코드를 생성하기 전에 빠르게 입력해야 합니다.

잘못된 인증번호를 입력하면 시스템에 접속할 수 없으며, 다음과 같은 권한 거부 오류가 발생합니다.

ssh [email 

Verification code:
Verification code:
Verification code:
Permission denied (keyboard-interactive).
결론

이 간편한 양방향 인증을 구현함으로써 시스템에 추가 보안 계층을 추가할 수 있을 뿐만 아니라 알 수 없는 사용자가 서버에 액세스하는 것이 더 어려워졌습니다.