Authentification SSH en 2 étapes

Google a sorti une API il y a un petit moment du nom de Google Authenticator. Je suis sûr que vous l’utilisez déjà pour votre compte Gmail (si vous ne le faîtes pas, vous devriez). Vous pouvez l’installer à partir de l’Android Market (ou le market Apple pour les adorateurs d’Apple) puis paramétrez votre compte.

J’ai récemment lu que l’on pouvait aussi le faire pour SSH. Comme j’ai quelques VMs présentes sur internet, je me suis dit que j’allais l’installer. Ce tutoriel rapide est basé sur Debian.

Assurez vous d’installer les bons paquets pour commencer : apt-get install mercurial libpam0g-dev puis clonez le repo : hg clone https://google-authenticator.googlecode.com/hg/ google-authenticator. Il vous faut ensuite compiler le binaire et module PAM cd google-authenticator/libpam/ && make && make install.

Vous pouvez maintenant paramétrer votre utilisateur pour Google Authenticator, Pour ce faire, assurez vous d’être loggué en tant que l’utilisateur puis tapez la commande suivante : google-authenticator. Il va créer les codes permanents et de récupération, ainsi qu’un lien https pour scanner votre nouvelle authentification avec l’application de votre téléphone.

Il ne reste à présent qu’à activer le module pam, éditez /etc/pam.d/sshd et ajoutez ce qui suit (avant la ligne include common-auth)

auth required pam_google_authenticator.so

Puis éditez /etc/ssh/sshd_config et assurez vous d’activer les variables suivantes en yes: ChallengeResponseAuthentication and UsePAM Redémarrez alors le démon SSH.

C’est prêt, votre serveur vous accueille à présent avec ceci :

frlinux@qosmio:~$ ssh server
Verification code:
Password:

2 thoughts on “Authentification SSH en 2 étapes

  1. Si je comprends bien maintenant pour te logger sur ton serveur il faut que le service google soit UP et que tu ai un compte gmail?
    C’est quoi l’intérêt par rapport a un mot de passe sur le serveur ? (a l’heure ou tous les services centralisés se font pirater…)

    Et pourquoi ne pas plutot utilisé une paire de clée publique/privé (éventuellement avec un mot de passe) pour accéder a ssh ?

    J’ai du mal a voir l’interet de passer par google/gmail pour acceder a mes VM (a part rajouter un SPOF et/ou une vulnérabilité)

  2. Non. Il s’agit d’un one time password qui ne requiert pas de compte Google. Tu créées un authenticator base sur l’api. Et c’est user based.

Comments are closed.