OpenSSH로 비밀번호와 공개 키 인증을 모두 활성화하는 방법 다음 둘

sshd가 사용자의 공개 키를 확인한 다음 둘 중 하나가 아닌 암호를 묻습니다. 이것이 가능한가?



답변

현재는 아닙니다. 그러나 이것을 추가 해야하는 패치가 주위에 떠 있습니다.

https://bugzilla.mindrot.org/show_bug.cgi?id=983을 참조 하십시오.


답변

이것은 마지막으로 구성 옵션을 사용하여 OpenSSH 6.2 (2013 년 3 월 릴리스)부터 사용할 AuthenticationMethods수 있습니다.

예를 들어 sshd_config공개 키 인증과 비밀번호 인증이 모두 필요하도록 다음 행을 추가 할 수 있습니다 .

AuthenticationMethods publickey,password

때 로그인, ssh그리고 scp최초의 암호를 공개 키 인증하고 프롬프트를 수행합니다 :

$ ssh user@example.org
Authenticated with partial success.
user@example.org's password:

개인 키 파일에 암호가 있으면 먼저 암호를 입력하라는 메시지가 표시됩니다. 예PuTTY를 사용하는 :

Using username "user".
Authenticating with public key "rsa-key-20131221-user"
Passphrase for key "rsa-key-20131221-user":
Further authentication required
user@example.org's password:

답변

RHEL / CentOS 6.3의 OpenSSH는 이제이 기능을 지원하지만 OpenSSH 릴리스 노트에 언급되어 있지 않습니다. 로부터 RHEL 릴리스 정보 :

SSH는 이제 여러 가지 인증 방법을 요구하도록 설정할 수 있습니다 (이전에 SSH는 여러 가지 인증 방법으로 로그인에 성공한 방법 중 하나만 필요했습니다). 예를 들어 SSH 사용 시스템에 로그인하려면 암호와 공개 키를 모두 입력해야합니다. RequiredAuthentications1RequiredAuthentications2 옵션은 구성 할 수 있습니다 /etc/ssh/sshd_config.에서 성공적인 로그에 필요한 예를 들어 인증을 지정하는 파일 :

  ~]# echo "RequiredAuthentications2 publickey,password" >> /etc/ssh/sshd_config

위에서 언급 한 /etc/ssh/sshd_config옵션 에 대한 자세한 내용 은 sshd_config매뉴얼 페이지를 참조하십시오.


답변

가능하지만 단호하고 제한적인 방식으로 가능합니다. 먼저 공개 키 인증 만 허용합니다. 그런 다음/etc/ssh/sshd_configForceCommand 비밀번호를 확인하는 스크립트를 실행하는를 추가 하십시오.

명령이 sftp인지 확인하고 암호없이 허용하지 않으면 스크립트는 SFTP를 중단합니다.

나는 이것을 시도하지 않았으므로 누군가 더 많은 문제를 볼 수 있습니다.