gpg-agent проверяет только смарт-карту, а не локальные ключи - PullRequest
0 голосов
/ 01 ноября 2019

Я установил GnuPG Windows на компьютер с Windows 10 и хотел бы использовать его с Putty в качестве ssh-аутентификации на основе ключей вместе со смарт-картой. У меня все работает нормально.

Единственная проблема, которая у меня есть, заключается в том, что gpg-agent всегда проверяет наличие смарт-карты, даже если ключи не хранятся на смарт-карте.

gpg-connect-agent "keyinfo --list" /bye

S KEYINFO 16F96695784023BBD32BE7D9F8320568156CB76A D - - - P - - -
S KEYINFO 3D3DE2508675ECE9856242056D8A5956E35B056E D - - - P - - -
S KEYINFO C8316A470CEB466B4565C55B7FB8A98BA10BB558 D - - - P - - -
S KEYINFO C9376FD06A963284ADC1EF46861EC611C5D780B7 D - - - P - - -

Это показывает, чтовсе ключи расположены на диске (столбец с «D»), но журнал gpg-agent показывает, что агент получает запрос от putty через опции «Pageant», и он проверяет SC через scdaemon.

2019-11-01 19:44:18 gpg-agent[6304] DBG: ssh map file 'PageantRequest00003d68'
2019-11-01 19:44:18 gpg-agent[6304] DBG: ssh map handle 0x00000338
2019-11-01 19:44:18 gpg-agent[6304] DBG:           my sid: 'S-1-5-21-2710969852-3158981170-84828875-1001'
2019-11-01 19:44:18 gpg-agent[6304] DBG: ssh map file sid: 'S-1-5-21-2710969852-3158981170-84828875-1001'
2019-11-01 19:44:18 gpg-agent[6304] DBG: ssh IPC buffer at 0x00670000
2019-11-01 19:44:18 gpg-agent[6304] ssh request handler for request_identities (11) started
2019-11-01 19:44:18 gpg-agent[6304] new connection to SCdaemon established (reusing)
2019-11-01 19:44:18 gpg-agent[6304] DBG: chan_0x00000314 -> SERIALNO
2019-11-01 19:44:18 gpg-agent[6304] DBG: chan_0x00000314 <- ERR 100696144 No such device <SCD>
2019-11-01 19:44:18 gpg-agent[6304] ssh request handler for request_identities (11) ready
2019-11-01 19:44:18 gpg-agent[6304] DBG: chan_0x00000314 -> RESTART
2019-11-01 19:44:18 gpg-agent[6304] DBG: chan_0x00000314 <- OK

Я не понимаю, как gpg-agent определяет, где искать закрытый ключ (диск или смарт-карта) и где он настроен. Я могу отключить scdaemon с помощью --disable-scdaemon, но это не имеет никакого эффекта.

Когда я копирую секретный ключ на смарт-карту через keytocard в gpg, все работает нормально.

...