GPG зависает при использовании Yubikey
Я пытаюсь понять, почему мой Yubikey неожиданно так долго получает доступ. Yubikey содержит закрытый ключ GPG, который затем используется для GPG и SSH. Несколько месяцев он работал нормально, а теперь только для завершения расшифровки или подписи требуется несколько секунд:
$ echo hi | time gpg --clearsign
...
gpg --clearsign 0.00s user 0.00s system 0% cpu 21.660 total
Раньше это происходило мгновенно. Увидев довольно круглую и воспроизводимую задержку, я начал искать потенциальные причины и проследил проблему до конца.
2023-08-04 16:02:01 scdaemon[197085] DBG: chan_7 <- SERIALNO
2023-08-04 16:02:11 scdaemon[197085] DBG: apdu_open_reader: BAI=94102
2023-08-04 16:02:11 scdaemon[197085] DBG: chan_7 -> S SERIALNO ABCD
2023-08-04 16:02:11 scdaemon[197085] DBG: chan_7 -> OK
2023-08-04 16:02:11 scdaemon[197085] DBG: chan_7 <- SERIALNO
2023-08-04 16:02:23 scdaemon[197085] DBG: apdu_open_reader: BAI=94102
2023-08-04 16:02:23 scdaemon[197085] DBG: chan_7 -> S SERIALNO ABCD
2023-08-04 16:02:23 scdaemon[197085] DBG: chan_7 -> OK
2023-08-04 16:02:23 scdaemon[197085] DBG: chan_7 <- GETATTR KEY-FPR
2023-08-04 16:02:23 scdaemon[197085] DBG: send apdu: c=00 i=CA p1=00 p2=6E lc=-1 le=256 em=0
2023-08-04 16:02:23 scdaemon[197085] DBG: raw apdu: 00 CA 00 6E 00
2023-08-04 16:02:23 scdaemon[197085] DBG: response: sw=9000 datalen=224
2023-08-04 16:02:23 scdaemon[197085] DBG: dump: 6E 81 DD 4F ...
2023-08-04 16:02:23 scdaemon[197085] DBG: chan_7 -> S KEY-FPR 1 AXYZ
2023-08-04 16:02:23 scdaemon[197085] DBG: chan_7 -> S KEY-FPR 2 BXYZ
2023-08-04 16:02:23 scdaemon[197085] DBG: chan_7 -> S KEY-FPR 3 CXYZ
2023-08-04 16:02:23 scdaemon[197085] DBG: chan_7 -> OK
2023-08-04 16:02:23 scdaemon[197085] DBG: chan_7 <- RESTART
2023-08-04 16:02:23 scdaemon[197085] DBG: chan_7 -> OK
Обратите внимание, что есть два отдельных перерыва, каждый по 10 секунд. Похоже, он пытается прочитать серийный номер со смарт-карты, если я правильно читаю журналы.
Что может быть причиной этой задержки? Может ли это быть поиск в сети, который не работает через 10 секунд? И как я могу решить эту проблему и не ждать 20-30 секунд при каждом коммите git или ssh-соединении, которое я делаю?