Comment puis-je activer à la fois l'authentification par mot de passe et clé publique avec OpenSSH

10

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?

surprise_
la source

Réponses:

12

Ceci est enfin disponible à partir d'OpenSSH 6.2 (sorti en mars 2013), en utilisant l' AuthenticationMethodsoption de configuration.

Par exemple, vous pouvez ajouter la ligne suivante à sshd_configpour exiger à la fois l'authentification par clé publique et mot de passe:

AuthenticationMethods publickey,password

Lors de la connexion, sshil scpeffectuera 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:
Søren Løvborg
la source
1

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 RequiredAuthentications1et RequiredAuthentications2peuvent être configurées dans le /etc/ssh/sshd_configfichier 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_configoptions susmentionnées , reportez-vous à la sshd_configpage de manuel.

mgorven
la source
0

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_configajoutez un ForceCommandqui 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.

Mark Wagner
la source