Validation en deux étapes SSH

La validation en deux étapes, ou la double authentification, permet de demander, en plus d’un mot de passe, un code de confirmation à six chiffres généré par votre téléphone et changeant toutes les dix secondes. Au niveau de la sécurité, combiné avec l’authentification par clef, difficile de faire mieux! En effet même si quelqu’un parvennait à dérober les clefs sur votre ordinateur, il lui faudrait aussi voler votre télephone.

Installation

warning

Attention: si vous effectuez ces manipulations connectés en SSH, ne fermez pas votre connection avant d’avoir pu vous connecter une fois installée la double authentification, sans quoi vous pourriez vous trouver bloqués en dehors de votre ordinateur.

# Ubuntu
apt-get install libpam-google-authenticator
# Arch
yaourt -S google-authenticator-libpam-git
# Puis executez google-authenticator afin de generer vos clefs
google-authenticator

Vidéo de l’installation.

Veillez à stocker les codes fournis maintenant, ils vous permetteront de vous connecter si jamais vous n’avez pas accès a votre telephone.

Google-authenticator with registered SSH account

Connectez ensuite votre telephone à votre compte. Dans l’application google-authenticator (iOS ou Android) soit en prenant en photo le QR code à l’URL donnée (ou affiché dans le terminal) soit en rentrant la clef secrète fournie. Si tout se passe bien vous aurez quelque chose qui ressemble à ça, sans le compte Gandi évidemment.

Je vous conseille de ne demander le code de confirmation uniquement que pour les connections en SSH, en non globallement. Cependant c’est aussi possible: plutôt que de modifier /etc/pam.d/sshd comme ci-après, modifiez /etc/pam.d/system-auth en redoublant de vigilance afin de ne pas se retrouver sans possiblité de connection.

Donc ouvrez /etc/pam.d/sshd et ajoutez ceci:

auth            required        pam_google_authenticator.so

Puis modifiez /etc/ssh/sshd_config et changez le “no” de cette ligne en “yes” comme ici:

ChallengeResponseAuthentication yes

Vous pouvez maintenant tester votre connection, si tout se passe bien vous devriez voir ceci:

ssh maxime@lituxx
Password:
Verification Code:

Et voilà, vous avez maintenant une double vérification sur votre serveur SSH!

Vus : 736
Publié par Maxime : 5