gpg-agent findet key card nicht

Hallo,

ich habe bis zum Windows 10 Update und Reboot eine Nitrokey Key Card erfolgreich für die SSH Authentifizierung genutzt.

Jetzt kommt es aber zu Fehlern, wie z.B. Ausgabe von gpg --card-status
PS C:\Users\d038783> gpg -vvv --card-status
gpg: using character set ‘CP850’
gpg: selecting card failed: No such device
gpg: OpenPGP Karte ist nicht vorhanden: No such device

Im Logfile des scdaemon findet man diese Einträge:
2021-05-26 11:13:06 scdaemon[3956] DBG: chan_0x000002a0 ← GETINFO version
2021-05-26 11:13:06 scdaemon[3956] DBG: chan_0x000002a0 → D 2.2.27
2021-05-26 11:13:06 scdaemon[3956] DBG: chan_0x000002a0 → OK
2021-05-26 11:13:06 scdaemon[3956] DBG: chan_0x000002a0 ← SERIALNO
2021-05-26 11:13:06 scdaemon[3956] pcsc_establish_context failed: no service (0x8010001d)
2021-05-26 11:13:06 scdaemon[3956] DBG: leave: apdu_open_reader => slot=-1 [pc/sc]
2021-05-26 11:13:06 scdaemon[3956] DBG: chan_0x000002a0 → ERR 100696144 No such device
2021-05-26 11:13:06 scdaemon[3956] DBG: chan_0x000002a0 ← RESTART
2021-05-26 11:13:06 scdaemon[3956] DBG: chan_0x000002a0 → OK

Nach meinem Verständnis läuft der pcsc Service nicht oder nicht korrekt.

Im Win10 Device Manager findet man ein Gerät “Microsoft Usbccid Smartcard reader (WUDF)”, das ggf. in Konflikt steht mit der Key Card.

Wie kann ich dieses Problem beheben?

THX

2021-05-26_11-32-12.png

Hallo Thomas,

laut [MS-ERREF] v20.0 ist
0x8010001D
SCARD_E_NO_SERVICE
The smart card resource manager is not running.

[MS-ERREF] https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-erref/

Hier sind zwei Fundstellen auf Englisch, welche vielleicht Ideen bringen:

Gerade die Idee mit certutil und Process Explorer ranzugehen, scheint it sinnvoll.

Gruß,
Bernhard

Hallo Bernhard,
vielen Dank für deine Antwort.

Allerdings bin ich, offen gesagt, ziemlich lost.

Ich habe den MS Process Explorer installiert und ermittelt, dass der Prozess scdaemon.exe läuft (siehe Screenshot).

Wenn ich die Fehlermeldung des Logs
pcsc_establish_context failed: no service (0x8010001d)
richtig verstehe, dann läuft ein bestimmter Prozess allerdings nicht.

Und dann stelle ich mir die Frage:

  • Welcher Prozess fehlt?
  • Und wie soll ich diesen Prozess identifizieren mit einem Tool, das laufende Prozesse anzeigt?

Die Suche “Find Handle or DLL” gibt nur einen Prozess zurück:
scdaemon.exe

2021-05-26_17-31-11.png

Issue fixed.

Die Ursache war der Service “SCardSvr”; erst wenn dieser läuft, funktioniert die Erkennung der Key Card und die Ausgabe von gpg --card-status.

2021-05-26_17-51-41.png

Hallo Thomas,

gut, dass Du Dein Problem lösen konntest.

Hast Du eine Idee warum der MS Dienst nicht lief und was hast Du gemacht, damit er wieder lief?

(Meine erste Idee war, dass vielleicht der Dienst mit einem anderen um den Zugriff auf das Gerät streitet, und aus dem Grund nicht läuft. Da hätte das ansehen der Prozesse vielleicht geholfen.)

Gruß,
Bernhard