WindowsでYubikeyを使ってSSH鍵を管理する(ssh-agent周りの設定)
概要
YubikeyのOpenPGP機能を利用してSSH秘密鍵を管理したい。
その際、ssh-agenの設定が難しかったので、一番簡単だと思うやり方を紹介します。
鍵の生成は以下の記事を参考にすれば特に難しくはなかったので、鍵生成が済んでいてYubikeyへの書き込みが終わっている前提で話を進めます。
YubikeyでOpenPGP鍵をセキュアに使う | κeenのHappy Hacκing Blog
目次
ssh-agentの無効化
田+Rキーを押して「ファイル名を指定して実行」ウィンドウを開きます。services.mscと入力し、OKをクリック

OpenSSH Authentication Agentというサービスをダブルクリックし、スタートアップの種類を無効にします。
※実行中の場合は停止ボダンで殺しておいてください。

wsl-ssh-pagentの導入
wsl-ssh-pagentのリリースページから最新のwsl-ssh-pageant-amd64-gui.exeをダウンロードします。
ダウンロードしたら適当なディレクトリに配置してください。
今回はC:\bin\wsl-ssh-pageant-amd64-gui.exeに配置しました。
wsl-ssh-pagentの自動起動設定を行います。
タスクスケジューラを立ち上げ、右側のリストからタスクの作成をクリックします。
新しいタスクを次のように作成してください
全般タブ
ssh-agentなど任意の名前を入力- 「ユーザーがログインしているときのみ実行する」から変更しない
トリガータブ
左下の「新規」をクリックして設定画面を開き、以下のように設定。- タスクの開始:ログオン時
- 設定: 任意のユーザー
- 有効: チェックを入れる
操作タブ
左下の「新規」をクリックして設定画面を開き、以下のように設定。- 操作: プログラムの開始
- プログラム: 先ほど配置した
C:\bin\wsl-ssh-pageant-amd64-gui.exeを入力(もしくは「参照…」をクリックして検索) - 引数の追加:
--systray --winssh openssh-ssh-agent
※タスクトレイに常駐させたくない場合は--winssh openssh-ssh-agent
gpg-agentの設定
Kleopatlaを立ち上げ、設定 -> Kleopatlaを設定の順でクリックします
新しいウィンドウが開くので、
左側の錠前のアイコンGnuPGシステムをクリック。プライベート鍵タブから、puttyサポートを有効にするのチェックを入れます。
最後にOKをクリックして終了します
gpg-agentの自動起動設定を行います。
タスクスケジューラを立ち上げ、右側のリストからタスクの作成をクリックします。
新しいタスクを次のように作成してください
全般タブ
gpg-agentなど任意の名前を入力- 「ユーザーがログインしているときのみ実行する」から変更しない
トリガータブ
左下の「新規」をクリックして設定画面を開き、以下のように設定。- タスクの開始:ログオン時
- 設定: 任意のユーザー
- 有効: チェックを入れる
操作タブ
左下の「新規」をクリックして設定画面を開き、以下のように設定。- 操作: プログラムの開始
- プログラム:
"C:\Program Files (x86)\GnuPG\bin\gpg-connect-agent.exe"を入力(もしくは「参照…」をクリックして検索) - 引数の追加:
updatestartuptty /bye
動作確認
ターミナル上でssh-add -Lを入力します。
このとき、Yubikeyが刺さっていれば公開鍵が表示されるはずです。
ここで表示した公開鍵をサーバに追加して利用してください。
(おまけ) Git for Windowsでの使い方
以下の設定を行い、CygWinから内蔵のOpenSSHにsshクライアントを切り替える。
1 | git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe" |
参考文献
YubikeyでOpenPGP鍵をセキュアに使う | κeenのHappy Hacκing Blog
混沌を極めるWindowsのssh-agent事情 #Windows - Qiita
GitをWindows10のOpenSSHを使うように設定する - lisz-works
OpenSSH Authentication Agentというサービスをダブルクリックし、スタートアップの種類を無効にします。
実行中の場合は停止ボダンで殺しておいてください。
wsl-ssh-pagentの導入
wsl-ssh-pagentのリリースページから最新のwsl-ssh-pageant-amd64-gui.exeをダウンロードします。
ダウンロードしたら適当なディレクトリに配置してください。
今回はC:\bin\wsl-ssh-pageant-amd64-gui.exeに配置しました。
wsl-ssh-pagentの自動起動設定を行います。
タスクスケジューラを立ち上げ、右側のリストからタスクの作成をクリックします。
新しいタスクを次のように作成してください
全般タブ
ssh-agentなど任意の名前を入力- 「ユーザーがログインしているときのみ実行する」から変更しない
トリガータブ
左下の「新規」をクリックして設定画面を開き、以下のように設定。- タスクの開始:ログオン時
- 設定: 任意のユーザー
- 有効: チェックを入れる
操作タブ
左下の「新規」をクリックして設定画面を開き、以下のように設定。- 操作: プログラムの開始
- プログラム: 先ほど配置した
C:\bin\wsl-ssh-pageant-amd64-gui.exeを入力(もしくは「参照…」をクリックして検索) - 引数の追加:
--systray --winssh openssh-ssh-agent
※タスクトレイに常駐させたくない場合は--winssh openssh-ssh-agent
gpg-agentの設定
Kleopatlaを立ち上げ、設定 -> Kleopatlaを設定の順でクリックします
新しいウィンドウが開くので、
左側の錠前のアイコンGnuPGシステムをクリック。プライベート鍵タブから、puttyサポートを有効にするのチェックを入れます。
最後にOKをクリックして終了します
gpg-agentの自動起動設定を行います。
タスクスケジューラを立ち上げ、右側のリストからタスクの作成をクリックします。
新しいタスクを次のように作成してください
全般タブ
gpg-agentなど任意の名前を入力- 「ユーザーがログインしているときのみ実行する」から変更しない
トリガータブ
左下の「新規」をクリックして設定画面を開き、以下のように設定。- タスクの開始:ログオン時
- 設定: 任意のユーザー
- 有効: チェックを入れる
操作タブ
左下の「新規」をクリックして設定画面を開き、以下のように設定。- 操作: プログラムの開始
- プログラム:
"C:\Program Files (x86)\GnuPG\bin\gpg-connect-agent.exe"を入力(もしくは「参照…」をクリックして検索) - 引数の追加:
updatestartuptty /bye
動作確認
ターミナル上でssh-add -Lを入力します。
このとき、Yubikeyが刺さっていれば公開鍵が表示されるはずです。
ここで表示した公開鍵をサーバに追加して利用してください。
(おまけ) Git for Windowsでの使い方
以下の設定を行い、CygWinから内蔵のOpenSSHにsshクライアントを切り替える。
1 | git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe" |
参考文献
YubikeyでOpenPGP鍵をセキュアに使う | κeenのHappy Hacκing Blog
WindowsでYubikeyを使ってSSH鍵を管理する(ssh-agent周りの設定)
https://lunatic.red/2024/09/26/WindowsでYubikeyを使ってSSH鍵を管理する-ssh-agent周りの設定/