Não atualmente. Mas existem alguns patches flutuando que deveriam adicionar isso.
Veja o link
Eu gostaria que o sshd verificasse a chave pública dos usuários e solicitasse sua senha, em vez de apenas uma ou outra. Isso é possível?
Não atualmente. Mas existem alguns patches flutuando que deveriam adicionar isso.
Veja o link
Isso está finalmente disponível no OpenSSH 6.2 (lançado em março de 2013), usando a opção de configuração AuthenticationMethods
.
Por exemplo, você pode adicionar a seguinte linha a sshd_config
para exigir autenticação de chave pública e senha:
AuthenticationMethods publickey,password
Ao efetuar login, ssh
e scp
realizarão primeiro a autenticação por chave pública e, em seguida, solicitarão uma senha:
$ ssh [email protected]
Authenticated with partial success.
[email protected]'s password:
Se você tiver uma senha em seu arquivo de chave privada, você será, naturalmente, primeiro solicitado para isso. Exemplo usando o 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:
É possível, mas de uma forma arbitrária e limitada. Primeiro, você só permite a autenticação de chave pública. Em seguida, em /etc/ssh/sshd_config
, adicione um ForceCommand
que executa um script que verificará a senha.
O script quebrará o SFTP, a menos que você verifique se o comando é sftp e passe sem uma senha.
Eu nunca tentei isso para que alguém possa ver mais problemas.
O OpenSSH no RHEL / CentOS 6.3 agora suporta esse recurso, embora eu não possa encontrá-lo mencionado nas notas de versão do OpenSSH. Das notas de versão do RHEL :
SSH can now be set up to require multiple ways of authentication (whereas previously SSH allowed multiple ways of authentication of which only one was required for a successful login); for example, logging in to an SSH-enabled machine requires both a passphrase and a public key to be entered. The
RequiredAuthentications1
andRequiredAuthentications2
options can be configured in the/etc/ssh/sshd_config
file to specify authentications that are required for a successful log in. For example:~]# echo "RequiredAuthentications2 publickey,password" >> /etc/ssh/sshd_config
For more information on the aforementioned
/etc/ssh/sshd_config
options, refer to thesshd_config
man page.