기사를 발견했습니다(http://www.howtogeek.com/121650/how-to-secure-ssh-with-google-authenticators-two-factor-authentication/)에서는 로그인 성공 시 Google Authenticator 코드를 요청하도록 OpenSSH를 구성하는 방법을 설명합니다.
다음과 같은 일이 발생하도록 OpenSSH를 구성하는 것이 가능합니까?
- 사용자가 서버에 로그인할 수 있는 올바른 개인 키를 가지고 있는 경우 해당 사용자를 로그인합니다.
- 사용자에게 서버에 로그인할 수 있는 개인 키가 없는 경우 사용자에게 계정 비밀번호와 Google 인증 코드를 물어보세요.
이는 편리하고(내 컴퓨터에서는 개인 키만 필요하므로) 안전합니다(비밀번호 인증을 활성화하고 안전하게 둘 수 있으므로).
내가 원하는 것을 성취할 수 있는 방법이 있나요?
미리 감사드립니다. :)
답변1
sshd
요구하도록 구성하는 것이 확실히 가능합니다.어느 하나유효한 키 쌍또는HOTP(요청할 때마다 새로운 일회용 비밀번호(OTP))를 사용하세요. OATH 기반 인증 - 하고 있어요. Google Authenticator는 또 다른 OATH 구현일 뿐이라고 확신합니다.
내 전체 글은 다음에서 읽을 수 있습니다.http://www.teaparty.net/technotes/yubikey-oath.html하지만 결과는 다음과 같습니다.
sshd
공개 키 기반 인증을 허용하도록 이미 설정되어 있다고 가정하면 (대부분 그렇습니다) 다음 두 줄을 다음에 추가합니다 sshd_config
.
PasswordAuthentication no
ChallengeResponseAuthentication yes
설치 pam_auth
(x86_64의 경우 CentOS 지향 방식):
yum install pam_oath
ln -s /usr/lib64/security/pam_oath.so /lib64/security/
인증 파일 /etc/users.oath
, 모드 600
, 소유자를 만들고 root:root
다음과 같은 줄로 채웁니다.
#type username pin start seed
HOTP fred - 123a567890123b567890123c567890123d567890
/etc/pam.d/sshd
라인 편집 및 추가
auth required pam_oath.so usersfile=/etc/users.oath window=5 digits=8
digits=8
6자리 HOTP OATH에 만족한다면 건너뛰세요 . TOTP OATH(매년 새로운 OTP)에도 비슷한 방법을 사용할 수 있다고 생각합니다.N초), 하지만 소프트웨어 토큰 대신 하드웨어 OATH 토큰을 사용하고 있으며 HOTP OATH만 수행하는 yubikey입니다.
유일한 문제는 유효한 키를 제시하지 않고 SSH에 접속하면 OATH 코드를 묻는 것입니다.~ 전에비밀번호. 나는 그것을 반대 방향으로 작동시킬 수는 없었지만 그다지 신경 쓰지 않기로 결정했습니다. 프롬프트를 통해 어떤 토큰이 요청되고 있는지 매우 명확하게 알 수 있습니다.
답변2
다음을 추가해야 합니다.
AuthenticationMethods publickey keyboard-interactive
publickey
와 keyboard-interactive
to 사이에 쉼표가 없습니다 /etc/ssh/sshd_config
. 다른 모든 설정은 변경할 필요가 없습니다(구성이 제공된 Howtogeek 튜토리얼과 동일한 경우).