😽
WSLで1PasswordをSSHエージェントとして利用する
WSLで1PasswordをSSHエージェントとして利用する
WSL2でGitを使う際1PasswordのSSHエージェント機能を使うと安全かつ快適にSSH接続ができます。
1PasswordでSSHエージェントを有効にする
1Passwordデスクトップアプリの設定から、SSHエージェントをONにします。
設定 → 開発者 → 「SSHエージェントを使用」をON

SSHキーを1Passwordに登録する
方法A:GUIから登録
新規アイテム → SSHキーを追加して「秘密鍵を追加」

方法B:CLIから登録(op item create)
デフォルトでは Ed25519 キーを作成します
op item create --category ssh --title "SSH KEY NAME"
GitHubにSSH公開鍵を登録する
GitHubにログインして、以下の手順で1Passwordに登録した公開鍵を登録します。
- Settings → SSH and GPG keys → New SSH key
- 1Passwordのブラウザ拡張が入っていれば先ほど登録したSSHキーが選択できます
SSH接続を確認する
WSLから以下のコマンドを実行します。
ssh.exe -T git@github.com
成功すれば、次のようなメッセージが表示されます。
Hi your-username! You've successfully authenticated, but GitHub does not provide shell access.
Gitでssh.exeを使うように設定する
git config --global core.sshCommand ssh.exe
これでGitは、WSL内でもWindowsのSSH(=1Password経由)を使用するようになります。
.zshrc にaliasを追加しておく(任意)
# ~/.zshrc
alias ssh=ssh.exe
alias ssh-add=ssh-add.exe
WSLでssh.exeやop.exeが使える理由 (補足)
WSL2には、Windowsの.exeファイルを直接実行できる仕組み(Interop機能)があります。たとえば、次のようにWindows側のアプリを呼び出すことができます。
notepad.exe
ssh.exe
op.exe
この仕組みにより、WSLからも1PasswordのSSHエージェントやCLIが利用できるわけです。
1Passwordを使えば、秘密鍵を直接ファイルとして扱うことなく、セキュアで快適なSSH接続環境を構築できます。
Discussion