Passer au contenu
kio.dev

Kio

@kio.sh

Ingénieur logiciel et concepteur UI/UX amateur basé à Toronto, Canada

Album art for the currently playing track

Dernièrement écouté

White Shirt

Nina Chuba — White Shirt - Single

29 novembre 2021

8 minute de lecture

2,9 k vues

Tous les articles

Utiliser une clé Yubikey pour l'authentification SSH sur macOS/Linux

Comment authentifier les connexions SSH à l'aide de l'emplacement d'authentification de votre Yubikey, sous Linux et MacOS.

La configuration d'une Yubikey pour l'authentification SSH peut être un peu délicate, et j'ai constaté que de nombreux guides existants manquaient, j'ai donc décidé d'écrire le mien pour faciliter la tâche des autres qui tentent cela.

D'après mes recherches, la plupart des guides se concentrent sur l'utilisation de l'emplacement pour carte à puce pour GPG. Mais honnêtement, c'est excessif et peut être un peu compliqué. Heureusement, avec agent yubikey , nous pouvons utiliser l'emplacement d'authentification (9a) et garder l'emplacement de la carte à puce ouvert pour d'autres utilisations.

Installation

Linux

yubikey-manager peut être utilisé comme une AppImage à partir de Site Web de Yubikey ou installé depuis votre gestionnaire de paquets.

Après l'installation, pcscd.service doit être activé et démarré : sudo systemctl enable pcscd.service --now.

yubikey-manager peut être trouvé sous le nom ykman-gui; ykman pour la version CLI.

yubikey-agent peut être installé en utilisant le yubikey-agent paquet de l'AUR, ou sur d'autres distributions, peut être installé manuellement .

Après l'installation, il doit être activé et démarré : systemctl daemon-reload --user && systemctl --user enable yubikey-agent.service --now.

macOS

yubikey-manager peut être téléchargé et installé à partir de Site Web de Yubikey .

yubikey-agent peut être installé en utilisant Homebrew : brew install yubikey-agent. Après l'installation, il doit être activé en utilisant brew services start yubikey-agent.

Mesures

Générer une nouvelle clé

Ici, vous pouvez choisir soit yubikey-agent -setup, ou, utiliser yubikey-manager pour générer une clé. J'ai choisi la deuxième option et je la recommande, car yubikey-agent c'est plus simple, cela ne donne aucun contrôle sur le type ou la longueur de la clé générée.

Utilisation de yubikey-agent*

Pour générer une nouvelle clé avec yubikey-agent et la stocker dans l'emplacement d'authentification PIV de votre Yubikey, exécutez simplement yubikey-agent -setup avec votre Yubikey connecté et suivez les étapes.

Il vous sera demandé de définir un code PIN et de recevoir votre clé publique une fois le processus terminé.

Il est important de noter que yubikey-agent -setup génère une clé de gestion aléatoire et la stocke dans des métadonnées protégées par code PIN, ce qui rend difficile l'utilisation d'autres emplacements PIV sans quelques solutions de contournement de type hack-y  1 .

Utilisation de Yubikey-Manager

Pour générer une nouvelle clé à l'aide de yubikey-manager Pour installer le logiciel, accédez à l'onglet « Applications > PIV » et assurez-vous que l'option « Authentification » est sélectionnée. Si un certificat est déjà présent, s'assurer ce n'est pas important et n'est pas utilisé. L'écrasement de l'emplacement est pas réversible.

Cliquez sur « Générer », sélectionnez le type de clé que vous souhaitez générer (la valeur par défaut devrait convenir si vous n'êtes pas sûr), nommez-la « Clé SSH » et définissez la date d'expiration.

Si tout semble correct, enregistrez et saisissez le code PIN pour confirmer. Si vous n'en avez pas encore défini, le code par défaut est 123456 - Il faudrait remplacer ce code par un code plus sécurisé, ainsi que le code PUK et la clé de gestion. Sauvegardez-les hors ligne et en lieu sûr.

Configurez votre shell

Ensuite, vous devrez configurer votre shell pour définir le SSH_AUTH_SOCK variable d'environnement au lancement.

Commencez par localiser le socket yubikey-agent. Vous pouvez consulter la sortie de ps aux | grep yubikey-agent Si vous n'êtes pas sûr. Pour moi, sous Linux, son emplacement était /run/user/{Your UID}/yubikey-agent/yubikey-agent.sock par défaut.

Poisson

Ouvrez votre configuration et ajoutez set -gx SSH_AUTH_SOCK "/run/user/{Your UID}/yubikey-agent/yubikey-agent.sock", où le chemin est l'emplacement du socket yubikey-agent.

Bash / ZSH / SH

Ouvrez votre configuration et ajoutez export SSH_AUTH_SOCK="/run/user/{Your UID}/yubikey-agent/yubikey-agent.sock", où le chemin est l'emplacement du socket yubikey-agent.

Dépendances supplémentaires

Enfin, pour pouvoir utiliser la clé privée, vous devez d'abord vous authentifier avec votre code PIN. Si vous utilisez une distribution comme Ubuntu, cela devrait fonctionner immédiatement, mais si vous utilisez une installation personnalisée ou plus minimaliste, vous devrez peut-être d'abord installer un trousseau de clés et un agent Polkit compatibles. Je préfère l'agent Polkit de GNOME, car il affiche des fenêtres modales élégantes et fonctionne avec archlinux-keychain, mais n'importe quel agent devrait fonctionner.

Plus

Et voilà ! Vous devriez maintenant avoir une clé SSH entièrement configurée et fonctionnelle dans l'emplacement d'authentification de votre Yubikey.

  • Pour imprimer la clé publique et tester la configuration, exécutez ssh-add -L.
    • Si vous ne voyez aucune identité ou obtenez une erreur, vérifiez que tous les services requis sont installés et en cours d'exécution et que vous avez correctement configuré la variable d'environnement SSH_AUTH_SOCK de votre shell.
  • Si vous n'utilisez pas l'indicateur '-setup' avec yubikey-agent, s'assurer vous définissez un code PIN, un PUK et une clé de gestion sécurisés et les stockez dans un endroit sûr et hors ligne.
  • Si vous rencontrez des problèmes lors de l'utilisation de la Yubikey pour d'autres fonctionnalités après l'avoir utilisée avec yubikey-agent, j'ai trouvé soit le débrancher et le rebrancher, soit envoyer un SIGHUP au yubikey-agent le processus résout ce problème.

Notes de bas de page

  1. See yubikey-agent's manual setup instructions