LinuxとMacOSで問題なく使用できるYubikey4CNanoがあります。最近、Macbook ProにWindowsのバージョンをインストールして、デュアルブートできるようにしました(Windowsバージョンのアプリケーションを実行できるようにします)。
Yubikeyがgitを介して使用するために必要な要件、つまりGPG4Winをインストールしました。再起動後、Kleopatraを起動して[ツール]-> [スマートカードの管理]を選択すると、F5キーを押して更新するまでスマートカードのエントリが表示されません。
この更新プロセスを実行しないと、キーもgitbashで認識されません。しかし、このステップを実行すると、それはis認識され、セッションの残りの部分で使用できます。
私の質問は、Windowsを起動するたびにこの手動プロセスを実行する必要がないように、これをスクリプト化する方法があるかどうかです。
cmd.exe
とmsys
が実際には2つの異なるバージョンのgpgを使用していることに気づきました。
Msysから:
$ gpg --version
gpg (GnuPG) 2.2.18-unknown
libgcrypt 1.8.5
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Home: /c/Users/scottj/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, Zip, ZLIB, BZIP2
cmd.exe
内から:
gpg --version
gpg (GnuPG) 2.2.17
libgcrypt 1.8.4
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Home: C:/Users/scottj/AppData/Roaming/gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, Zip, ZLIB, BZIP2
gpg-agent
を起動しない以外に、msys内からgpg --card-status
を実行して出力を取得することもできませんでした。
この問題を修正するために、msys内の/usr/bin
に移動し、次のファイルを削除しました。
gpg.exe
gpg-connect-agent.exe
gpg-agent.exe
gpgconf.exe
gpg-error.exe
gpgparsemail.exe
gpgscm.exe
gpg-sm.exe
gpgtar.exe
gpgv.exe
gpg-wks-server.exe
(または、より正確には、これが逆効果になった場合に、それらを失うことがないように、それらを別の場所に移動します)
これを行った後、gpg --card-status
はmsys/GitBash内で機能します。