Je voudrais que sshd vérifie la clé publique des utilisateurs, puis demande leur mot de passe, plutôt que l'un ou l'autre. Est-ce possible?
la source
Je voudrais que sshd vérifie la clé publique des utilisateurs, puis demande leur mot de passe, plutôt que l'un ou l'autre. Est-ce possible?
Pas actuellement. Mais il y a des patchs flottants qui sont censés ajouter cela.
Ceci est enfin disponible à partir d'OpenSSH 6.2 (sorti en mars 2013), en utilisant l' AuthenticationMethods
option de configuration.
Par exemple, vous pouvez ajouter la ligne suivante à sshd_config
pour exiger à la fois l'authentification par clé publique et mot de passe:
AuthenticationMethods publickey,password
Lors de la connexion, ssh
il scp
effectuera d'abord une authentification par clé publique, puis vous demandera un mot de passe:
$ ssh [email protected]
Authenticated with partial success.
[email protected]'s password:
Si vous avez un mot de passe sur votre fichier de clé privée, vous serez bien sûr d'abord invité à le faire. Exemple d' utilisation de 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:
OpenSSH dans RHEL / CentOS 6.3 prend désormais en charge cette fonctionnalité, bien que je ne la trouve pas mentionnée dans les notes de version d'OpenSSH. D'après les notes de version RHEL :
SSH peut désormais être configuré pour exiger plusieurs modes d'authentification (alors qu'auparavant SSH autorisait plusieurs modes d'authentification dont un seul était nécessaire pour une connexion réussie); par exemple, la connexion à une machine compatible SSH nécessite la saisie d'une phrase secrète et d'une clé publique. Les options
RequiredAuthentications1
etRequiredAuthentications2
peuvent être configurées dans le/etc/ssh/sshd_config
fichier pour spécifier les authentifications requises pour une connexion réussie. Par exemple:~]# echo "RequiredAuthentications2 publickey,password" >> /etc/ssh/sshd_config
Pour plus d'informations sur les
/etc/ssh/sshd_config
options susmentionnées , reportez-vous à lasshd_config
page de manuel.
C'est possible, mais d'une manière délicate et limitée. Tout d'abord, vous autorisez uniquement l'authentification par clé publique. Ensuite, /etc/ssh/sshd_config
ajoutez un ForceCommand
qui exécute un script qui vérifiera le mot de passe.
Le script interrompra SFTP à moins que vous ne vérifiiez que la commande soit sftp et que vous la laissiez passer sans mot de passe.
Je n'ai jamais essayé cela, donc quelqu'un pourrait voir plus de problèmes.