Fedora에서 SSH에 대한 두 가지 요소 인증을 설정하는 방법


매일 우리 데이터가 위험에 처한 곳에서 많은 보안 침해가있는 것으로 보입니다. SSH는 리눅스 시스템에 원격으로 연결을 설정하는 안전한 방법이지만, 알려지지 않은 사용자는 암호를 사용하지 않거나 SSH 연결 만 허용하더라도 SSH 키를 훔칠 경우 Linux 컴퓨터에 액세스 할 수 있습니다 공개 키와 개인 키.

이 기사에서는 Google OTP 를 사용하여 Fedora Linux 배포시 SSH에 대해 이중 인증 ( 2FA )을 설정하는 방법을 설명합니다 모바일 장치의 인증 자 응용 프로그램에서 무작위로 생성 한 TOTP ( Time-based One-Time Password ) 번호를 제공하여 원격 Linux 시스템을보다 안전하게 보호합니다.

TOTP 알고리즘과 호환되는 모바일 장치 용 양방향 인증 응용 프로그램을 사용할 수 있습니다. TOTP Google OTP 를 지원하는 Android 또는 IOS 용 무료 앱이 많이 있지만이 기사에서는 Google OTP 를 예로 사용합니다.

Fedora에 Google OTP 설치

먼저 다음 dnf 명령을 사용하여 Fedora 서버에 Google OTP 응용 프로그램을 설치하십시오.

$ 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 OTP 를 검색하고 애플리케이션을 설치합니다.

이제 휴대 전화에서 Google OTP 응용 프로그램을 열고 Fedora 터미널 화면에 표시된 QR 코드를 스캔하십시오. QR 코드 스캔이 완료되면 인증 자 응용 프로그램에서 무작위로 생성 된 번호를 얻고 Fedora 서버에 원격으로 연결할 때마다이 번호를 사용합니다.

Google OTP 설정 완료

Google OTP 응용 프로그램은 추가 질문을하고 다음 예제는 보안 구성 설정에 응답하는 방법을 보여줍니다.

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

Google OTP를 사용하도록 SSH 구성

인증 자 응용 프로그램을 사용하도록 SSH를 구성하려면 먼저 공개 SSH 키를 사용하여 작동중인 SSH 연결이 있어야합니다. 그러면 암호 연결을 비활성화 할 수 있습니다.

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

$ sudo vi /etc/pam.d/sshd

파일의 auth substack password-auth 행을 주석으로 처리하십시오.

#auth       substack     password-auth

그런 다음 파일 끝에 다음 행을 입력하십시오.

auth sufficient pam_google_authenticator.so

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

다음으로 /etc/ssh/sshd_config 파일을 열고 편집하십시오.

$ sudo vi /etc/ssh/sshd_config

ChallengeResponseAuthentication 행을 검색하여 로 변경하십시오.

ChallengeResponseAuthentication yes

PasswordAuthentication 행을 검색하여 아니요 로 변경하십시오.

PasswordAuthentication no

그런 다음 파일 끝에 다음 행을 입력하십시오.

AuthenticationMethods publickey,password publickey,keyboard-interactive

파일을 저장하고 닫은 다음 SSH를 다시 ​​시작하십시오.

$ sudo systemctl restart sshd

Fedora에서 이중 인증 테스트

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

$ ssh [email protected]

Verification code:

인증 코드는 인증 자 응용 프로그램에서 휴대 전화로 무작위로 생성됩니다. 생성 된 코드는 몇 초마다 변하기 때문에 새로운 코드를 생성하기 전에 신속하게 입력해야합니다.

잘못된 인증 코드를 입력하면 시스템에 연결할 수 없으며 다음과 같은 권한 거부 오류가 표시됩니다.

$ ssh [email protected]

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

이 쉬운 양방향 인증을 구현하면 시스템에 추가 보안 계층을 추가 할 수있을뿐만 아니라 알 수없는 사용자가 서버에 액세스하기가 더 어려워집니다.