{{tag>Xenial Trusty tutoriel authentification téléphone sécurité}}
----
====== Comment s'authentifier sur Ubuntu à partir d'une clé USB ou d'un téléphone ======
Voici un courte description sur comment configurer Ubuntu et une clé USB (et par extension un téléphone vous donnant accès à un stockage USB) afin de pouvoir vous authentifier sur Ubuntu.
Vous pouvez utiliser ce fonctionnement pour plus de simplicité. Lorsque vous brancher votre téléphone à votre ordinateur il se connecte, lorsque vous le déconnectez l'écran de veille s'affiche et ce sans devoir saisir un mot de passe.
Il est aussi possible pour mettre en place une [[wpfr>authentification forte]], via les deux facteurs d'authentification (téléphone ET saisie d'un mot de passe). Ce second cas, plus risqué car il est possible bloquer sa connexion, ne sera pas traité dans ce tutoriel mais facilement extrapolable.
===== Pré-requis =====
* Disposer d'une connexion à Internet configurée et activée.
* Disposer des [[:sudo|droits d'administration]].
* Disposer d'une clé USB ou d'un téléphone permettant le stockage USB.
===== Installation =====
==== Avant Ubuntu 16.04 ====
Il vous suffit, pour cela, d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>libpam-usb]]**.
====À partir d'Ubuntu 16.04====
Le paquet précédent ne se trouve malheureusement plus dans les dépôts officiels, il faut donc les télécharger manuellement, 3 paquets sont necéssaires. Téléchargez donc et [[:tutoriel:comment_installer_un_paquet|installez]] pour les [[:architecture matérielle|architectures]] 64 bits :
* [[http://launchpadlibrarian.net/180428026/udisks_1.0.5-1build1_amd64.deb|udisk]]
* [[http://launchpadlibrarian.net/103753206/pamusb-common_0.5.0-4_amd64.deb|pamusb-common]],
* [[http://launchpadlibrarian.net/103753205/libpam-usb_0.5.0-4_amd64.deb|libpam-us]].
Pour les architectures 32 bits :
* [[http://launchpadlibrarian.net/180428026/udisks_1.0.5-1build1_i386.deb|udisk]]
* [[http://launchpadlibrarian.net/103753206/pamusb-common_0.5.0-4_i386.deb|pamusb-common]],
* [[http://launchpadlibrarian.net/103753205/libpam-usb_0.5.0-4_i386.deb|libpam-us]].
=====Configuration=====
==== Déclarer votre périphérique (clé USB, téléphone) auprès de PAM ====
Ce mécanisme étant basé sur la détection automatique des périphériques de stockage USB, nous vous conseillons de laisser brancher que celui que vous souhaitez configurer. Dans le cas contraire, un choix vous sera proposé.
sudo pamusb-conf --add-device un_nom_a_votre_convenance
**Pamusb-conf** va lister les périphériques USB montés sur l'ordinateur, dans le cas où il n'y en a qu'un il vous le proposera d'office, il suffira donc de taper Y et entrée :
Please select the device you wish to add.
* Using "Key File-CD Gadget (0123456789ABCDEF)" (only option)
Which volume would you like to use for storing data ?
* Using "/dev/sdb1 (UUID: C099-1AA8)" (only option)
Name : un_nom_a_votre_convenance
Vendor : KeyVendor
Model : File-CD Gadget
Serial : 0123456789ABCDEF
UUID : C099-1AA8
Save to /etc/pamusb.conf ?
[Y/n]
Dans le cas où il y en a plusieurs il les liste et leur attribue un numéro, à vous de choisir celui que vous voulez.
Laissez le terminal ouvert. Il est préférable de n'avoir que la clé USB voulue de connectée pour éviter toute confusion au moment de cette manipulation.
Pour ceux qui tentent d'utiliser une SD card plutôt qu'une clé USB, le périphérique est appelé mmcblk0 ou équivalent
==== Déclarer un utilisateur auprès de PAM ====
sudo pamusb-conf --add-user nom_d_utilisateur
"nom_d_utilisateur" est à remplacer par le nom d'utilisateur de votre PC.
Which device would you like to use for authentication ?
* Using "un_nom_a_votre_convenance" (only option)
User : votre_login
Device : un_nom_a_votre_convenance
Save to /etc/pamusb.conf ?
[Y/n] Y
Done.
==== Tester votre configuration====
Nous allons simuler l'authentification d'un utilisateur pour voir si cela fonctionne, tapez dans le [[:terminal]] :
pamusb-check nom_d_utilisateur
Si vous avez pour résultat :
* Pad checking failed !
* Access denied.
Faites un peu de ménage avec :
rm ~/.pamusb/*
Vous pouvez aussi débranchez puis rebranchez votre périphérique.
Lorsque c'est bon, vous pouvez insérer dans le terminal :
su nom_d_utilisateur
et oh magie, vous n'avez plus votre mot de passe à insérer :-)
====(Dé)verrouiller automatiquement votre écran de veille lorsque vous (dé)branchez votre téléphone====
PAM permet de détecter la connexion de votre périphérique. Nous avons en profiter pour verrouiller l'écran de veille lorsque le téléphone est débrancher et le déverrouiller lorsqu'il est branché.
[[:tutoriel:comment_modifier_un_fichier|Editez avec les droits d'administration le fichier]] **/etc/pamusb.conf** et insérer les lignes :
gnome-screensaver-command -l
gnome-screensaver-command -d
entre les balises (au singulier) et (au singulier aussi) concernant votre périphérique et votre utilisateur. Les deux commandes précédentes ayant complété ce fichier automatiquement.
Puis pour détecter les (dé)branchements de votre périphérique il suffit d’exécuter (dans préférence dans un autre terminal afin d'avoir la trace) :
$ pamusb-agent
Il ne reste plus qu'à débrancher la clé USB / le téléphone pour s'apercevoir que, oh miracle, l'écran de veille se verrouille. Et le rebrancher pour s'apercevoir que oh miracle... il ne se passe rien.
En effet, sous la 14.04, la commande "gnome-screensaver-command -d" ne fonctionne pas par défaut, il faut configurer l'écran de veille grâce à :
gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled true
Ne reste plus qu'à automatiser le démarrage de pamusb-agent, pour se faire aller dans "Applications au démarrage" et ajouter une entrée ayant pour commande "pamusb-agent".
===== Pour aller plus loin =====
A priori il est possible de réaliser la même action avec le Bluetooth.
La configuration par défaut vous permet de vous authentifier soit avec le mot de passe soit avec la clé USB. Pour mettre en place une authentification forte avec le mot de passe ET la clé, nous vous conseillons de lire [[https://wiki.debian.org/pamusb#Profiles_for_the_Authentication|cette documentation]].
SI ce n'est que le fichier à configurer sous Ubuntu 14.04 est : /etc/pam.d/common-auth
Attention cette manipulation peut se révéler dangereuse. En cas de mauvaise manipulation, il faudra redémarrer avec sous un live-CD pour remettre le paramètre initial.
===== Voir aussi =====
* **(en)** [[https://ubuntuportal.com/2012/11/how-to-login-into-ubuntu-12-10-using-usb-flash-drive.html|article limpide pour Ubuntu 12.10 mais incomplet]]
* **(en)** [[http://linuxconfig.org/linux-authentication-login-with-usb-device|article plus complet]]
* **(en)** [[https://github.com/aluzzardi/pam_usb/wiki/Getting-Started|une très bonne doc. en anglais]]
* **(en)** [[https://bugs.launchpad.net/ubuntu/+source/gnome-screensaver/+bug/1307163|la page donnant la solution pour le problème de désactivation de l'écran de veille sur la 14.04]]
----
Contributeurs principaux : [[utilisateurs:root75]].