😽
WSLで1PasswordをSSHエージェントとして利用する
WSLで1PasswordをSSHエージェントとして利用する
WSL2でGitを使う際1PasswordのSSHエージェント機能を使うと安全かつ快適にSSH接続ができます。
1PasswordでSSHエージェントを有効にする
1Passwordデスクトップアプリの設定から、SSHエージェントをONにします。
設定 → 開発者 → 「SSHエージェントを使用」をON
SSHキーを1Passwordに登録する
方法A:GUIから登録
新規アイテム → SSHキーを追加して「秘密鍵を追加」
op item create
)
方法B:CLIから登録(デフォルトでは 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.
ssh.exe
を使うように設定する
Gitで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
ssh.exe
やop.exe
が使える理由 (補足)
WSLでWSL2には、Windowsの.exe
ファイルを直接実行できる仕組み(Interop機能)があります。たとえば、次のようにWindows側のアプリを呼び出すことができます。
notepad.exe
ssh.exe
op.exe
この仕組みにより、WSLからも1PasswordのSSHエージェントやCLIが利用できるわけです。
1Passwordを使えば、秘密鍵を直接ファイルとして扱うことなく、セキュアで快適なSSH接続環境を構築できます。
Discussion