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 :
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
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é !