Como ativar a autenticação de senha e chave pública com o OpenSSH

10

Gostaria que o sshd verifique a chave pública dos usuários e solicite sua senha, em vez de apenas uma ou outra. Isso é possível?

surpresa_
fonte

Respostas:

12

Finalmente, está disponível a partir do OpenSSH 6.2 (lançado em março de 2013), usando a AuthenticationMethodsopção de configuração.

Por exemplo, você pode adicionar a seguinte linha sshd_configpara exigir autenticação de chave pública e senha:

AuthenticationMethods publickey,password

Ao entrar, sshe scpvai primeiro executar a autenticação de chave pública, e, em seguida, prompt para uma senha:

$ ssh [email protected]
Authenticated with partial success.
[email protected]'s password:

Se você possui uma senha no seu arquivo de chave privada, é claro que primeiro será solicitado. Exemplo usando PuTTY :

Using username "user".
Authenticating with public key "rsa-key-20131221-user"
Passphrase for key "rsa-key-20131221-user":
Further authentication required
[email protected]'s password:
Søren Løvborg
fonte
1

O OpenSSH no RHEL / CentOS 6.3 agora suporta esse recurso, embora não seja possível encontrá-lo mencionado nas notas de versão do OpenSSH. Nas notas de versão do RHEL :

Agora o SSH pode ser configurado para exigir várias formas de autenticação (enquanto o SSH anteriormente permitia várias formas de autenticação, das quais apenas uma era necessária para um login bem-sucedido); por exemplo, fazer login em uma máquina habilitada para SSH exige que uma senha e uma chave pública sejam inseridas. As opções RequiredAuthentications1e RequiredAuthentications2podem ser configuradas no /etc/ssh/sshd_configarquivo para especificar as autenticações necessárias para um login bem-sucedido. Por exemplo:

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

Para mais informações sobre as /etc/ssh/sshd_configopções mencionadas acima , consulte a sshd_configpágina de manual.

mgorven
fonte
0

É possível, mas de uma maneira esquisita e limitada. Primeiro, você permite apenas a autenticação de chave pública. Em seguida, /etc/ssh/sshd_configadicione a ForceCommandque executa um script que verificará a senha.

O script quebrará o SFTP, a menos que você verifique se o comando é sftp e permita que ele seja executado sem uma senha.

Eu nunca tentei isso para que alguém possa ver mais problemas.

Mark Wagner
fonte