Il est temps de revenir sur le petit couple 1Password et WSL, car depuis début 2023, il y a eu du changement de côté et il est désormais beaucoup plus simple de les faire fonctionner ensemble.

Je fais également ce guide parce que la plupart des ressources qu'on peut trouver en ligne sont soit « outdated » ou alors proposent des méthodes qui sont beaucoup plus complexes que nécessaire.

Évidemment la première chose est d'installer 1Password, ce qui est évident, et aussi WSL, et là encore ce n'est pas une surprise.

L'autre chose importante est la suivante :

⚠️
Il ne faut pas passer par l'agent/client SSH par défaut (openSSH) au sein de WSL.

Contrairement à ce que disent la plupart des guides, ce n'est plus nécessaire désormais.

Du coup pour passer sur l'agent SSH de 1Password il y a deux choses à faire. La première est de créer des alias pour automatiquement utiliser l'exe de Windows :

# .bashrc or .zshrc
alias ssh = ssh.exe
alias ssh-add = ssh-add.exe

Il est même possible de faire un petit algo pour faire les alias ou non en fonction de si on est sur WSL ou non (par exemple si vous partagez votre config bash/zsh avec une machine Linux ou Mac).

if grep -q microsoft /proc/version; then
 alias ssh="ssh.exe"
 alias ssh-add="ssh-add.exe"
fi

Il ne reste qu'une chose à faire, créer un fichier config dans ~/.ssh avec une seule instruction (du moins si vous ne comptez utiliser les clés SSH que via 1Password) :

Host *
  IdentityAgent ~/.1password/agent.sock
⚠️
Attention à ne pas l'utiliser dans la config SSH du côté de Windows, car ça fera planter le pont entre Windows et WSL.

Toute le reste de la configuration se fera sur Windows.

La première chose est d'activer le système de signets SSH de 1Password :

Ensuite il faut ajouter une Section avec le nom Hosts et y ajouter le ou les adresses qui vont être utilisé avec la clé SSH en question :

La configuration sera automatiquement détectée dans la partie Développeur de la barre latéral, dans la catégorie Agent SSH puis juste en-dessous des clés SSH existante dans vos vaults 1Password :

Et vous allez me demander : « Pourquoi faire tout cela pour utiliser les clés SSH ? ». Et c'est là que toute la magie des signets va apparaitre.

Un signet SSH va automatiquement créer une config SSH par 1Password dans le dossier suivant : C:\Users\myuser\.ssh\1Password

Le fichier config qui est dedans sera auto-géré par 1Password et ajoutera automatiquement les configurations SSH liant les clés avec les hosts indiqués, tout est automatique.

La seule chose à faire c'est de modifier la config SSH primaire de Windows dans le fichier suivant : C:\Users\myuser\.ssh

Include ~/.ssh/1Password/config

Host gh_perso
	HostName github.com

Host gh_pro
	HostName github.com

Il suffit d'inclure le fichier de configuration de 1Password dans la configuration primaire. Si vous utilisez dans hosts custom, il faut également les indiquer dans ce fichier pour que la demande d'accès à la clé SSH puisse être routé correctement.

Maintenant vous pouvez faire le test pour vérifier que le prompt d'authentification s'affiche bien quand vous tentez de vous connecter à un host lié à une clé :

Bravo tout est configuré !