4 231
modifications
m (Pfoo a déplacé la page Multi-factor SSH authentication using YubiKey and SSH public keys vers Authentification SSH multi-facteur avec YubiKey et clés publique SSH) |
|||
(9 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 - | 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)= | ||
Ligne 142 : | Ligne 187 : | ||
#@include common-auth | #@include common-auth | ||
# Yubikey auth | |||
auth [success=1 default=ignore] pam_unix.so try_first_pass nullok_secure | auth [success=1 default=ignore] pam_unix.so try_first_pass nullok_secure | ||
</pre> | </pre> | ||
Ligne 148 : | Ligne 194 : | ||
<pre>chmod o-r /etc/pam.d/sshd</pre> | <pre>chmod o-r /etc/pam.d/sshd</pre> | ||
Vérifier aussi que l'auth par password est autorisé par ssh (<code>PasswordAuthentication yes</code> | Vérifier aussi que l'auth par password est autorisé par ssh (<code>PasswordAuthentication yes</code> dans <code>/etc/ssh/sshd_config</code>) |