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

benpye/wsl-ssh-pageant: A Pageant -> TCP bridge for use with WSL, allowing for Pageant to be used as an ssh-ageant within the WSL environment.

混沌を極める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

benpye/wsl-ssh-pageant: A Pageant -> TCP bridge for use with WSL, allowing for Pageant to be used as an ssh-ageant within the WSL environment.

混沌を極めるWindowsのssh-agent事情 #Windows - Qiita

GitをWindows10のOpenSSHを使うように設定する - lisz-works

WindowsでYubikeyを使ってSSH鍵を管理する(ssh-agent周りの設定)

https://lunatic.red/2024/09/26/WindowsでYubikeyを使ってSSH鍵を管理する-ssh-agent周りの設定/

Author

fuchse-ohren

Posted on

2024-09-26

Updated on

2026-03-11

Licensed under

コメント