« Authentification SSH multi-facteur avec YubiKey et clés publique SSH » : différence entre les versions

Aller à la navigation Aller à la recherche
m
 
(7 versions intermédiaires par le même utilisateur non affichées)
Ligne 20 : Ligne 20 :
Attention, si vous souhaitez utiliser la yubikey pour vous loguer en root, pensez à ne PAS désactiver le login root par password dans <code>/etc/ssh/sshd_config</code> (<code>PermitRootLogin yes</code>)
Attention, si vous souhaitez utiliser la yubikey pour vous loguer en root, pensez à ne PAS désactiver le login root par password dans <code>/etc/ssh/sshd_config</code> (<code>PermitRootLogin yes</code>)


=Authentification par clé privé+password OU clé privé+OTP=
=Authentification par clé privé+password OU clé privé+OTP (méthode 1)=


Cette configuration ne sera possible qu'a partir de OpenSSH 6.2 (pour Debian, à partir de Debian/Jessie et Debian/Wheezy-backports).
Cette configuration ne sera possible qu'a partir de OpenSSH 6.2 (pour Debian, à partir de Debian/Jessie et Debian/Wheezy-backports).
Ligne 53 : Ligne 53 :
Les utilisateurs seront désormais obligé de s'authentifier par une '''clé privée ET un mot de passe'''.  
Les utilisateurs seront désormais obligé de s'authentifier par une '''clé privée ET un mot de passe'''.  
Ce mot de passe dépend de votre configuration PAM. Si vous avec juste suivi cette documentation, les utilisateurs pourront se loguer soit avec leur (clé privé + mot de passe unix), soit avec leur (clé privé + OTP yubikey).
Ce mot de passe dépend de votre configuration PAM. Si vous avec juste suivi cette documentation, les utilisateurs pourront se loguer soit avec leur (clé privé + mot de passe unix), soit avec leur (clé privé + OTP yubikey).
Vous pouvez désactiver le login par mot de passe pour un utilisateur spécifique en désactivant son mot-de-passe unix (passwd -d <user>).
Vous pouvez désactiver le login par mot de passe pour un utilisateur spécifique en désactivant son mot-de-passe unix (<code>passwd -dl <user></code>).


Notez également que vous pouvez spécifier la directive <code>AuthenticationMethods</code> dans une directive <code>Match</code> pour modifier les méthodes d'authentification par utilisateur ou même par groupe.
Notez également que vous pouvez spécifier la directive <code>AuthenticationMethods</code> dans une directive <code>Match</code> pour modifier les méthodes d'authentification par utilisateur ou même par groupe.
=Authentification par clé privé+password OU clé privé+OTP (méthode 2)=
Cette configuration ne sera possible qu'a partir de OpenSSH 6.2 (pour Debian, à partir de Debian/Jessie et Debian/Wheezy-backports).
Editez le fichier <code>/etc/pam.d/sshd</code> et ajoutez la ligne suivante avant <code>@include common-auth</code> (remplacez XXXX par le <code>Client ID</code> que vous venez de générer chez yubico ; de même pour YYYYYYYY avec la <code>Secret key</code>) :
<pre>
auth sufficient pam_yubico.so id=XXXX key="YYYYYYYY" authfile=/etc/yubikey_mappings
</pre>
Le début de votre fichier <code>/etc/pam.d/sshd</code> devrait ressembler à ceci :
<pre>
# PAM configuration for the Secure Shell service
# Yubikey auth
auth sufficient pam_yubico.so id=XXXX key="YYYYYYYY" authfile=/etc/yubikey_mappings
# Standard Un*x authentication.
@include common-auth
</pre>
Pour des raisons de sécurité, empêchez other de lire la clé yubico :
<pre>chmod o-r /etc/pam.d/sshd</pre>
Ajoutez la ligne suivante dans <code>/etc/ssh/sshd_config</code> :
<pre>
ChallengeResponseAuthentication yes
AuthenticationMethods publickey,keyboard-interactive
</pre>
Et relancez le serveur OpenSSH :
<pre>/etc/init.d/ssh restart</pre>
Les utilisateurs seront désormais obligé de s'authentifier par une '''clé privée ET un mot de passe'''.
Ce mot de passe dépend de votre configuration PAM. Si vous avec juste suivi cette documentation, les utilisateurs pourront se loguer soit avec leur (clé privé + mot de passe unix), soit avec leur (clé privé + OTP yubikey).
Vous pouvez désactiver le login par mot de passe pour un utilisateur spécifique en désactivant son mot-de-passe unix (<code>passwd -dl <user></code>).
Voici comment cela va se présenter lors d'une tentative de connexion :
<pre>
pfoo@laptop:~$ ssh pfoo@domain.tld
Enter passphrase for key '/home/pfoo/.ssh/id_ed25519':
YubiKey for `pfoo':
</pre>
Pour vous connecter avec le mot-de-passe, tapez "enter" au prompt <code>YubiKey</code> pour le passer, puis vous sera présenté un champ <code>Password</code>


=Authentification par clé privé + OTP (pas de password)=
=Authentification par clé privé + OTP (pas de password)=
4 231

modifications

Menu de navigation