😽

WSLで1PasswordをSSHエージェントとして利用する

に公開

WSLで1PasswordをSSHエージェントとして利用する

WSL2でGitを使う際1PasswordのSSHエージェント機能を使うと安全かつ快適にSSH接続ができます。

1PasswordでSSHエージェントを有効にする

1Passwordデスクトップアプリの設定から、SSHエージェントをONにします。

設定 → 開発者 → 「SSHエージェントを使用」をON

SSHエージェント設定

SSHキーを1Passwordに登録する

方法A:GUIから登録

新規アイテム → SSHキーを追加して「秘密鍵を追加」

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.exeop.exeが使える理由 (補足)

WSL2には、Windowsの.exeファイルを直接実行できる仕組み(Interop機能)があります。たとえば、次のようにWindows側のアプリを呼び出すことができます。

notepad.exe
ssh.exe
op.exe

この仕組みにより、WSLからも1PasswordのSSHエージェントやCLIが利用できるわけです。


1Passwordを使えば、秘密鍵を直接ファイルとして扱うことなく、セキュアで快適なSSH接続環境を構築できます。

あしたのチーム Tech Blog

Discussion