Fixing NitroKey On Fedora 38
So after a very long hiatus and no less than five Fedora releases I was ready to
write something new on this blog. Unfortunately, when I plugged in my NitroKey
Pro to update my site repository I was greeted by permission denied (pubkey)
errors whenever I tried to SSH. Digging in a bit further with gpg --card-status
reported no card even when dmesg
and the NitroKey app itself would happily
show the device.
After some research here, here, and here;
turns out that the issue is pcscd
and scdaemon
fighting with eachother for
exclusive control of the smartcard device. Since pcscd
seems to be started at
or very soon after login and scdaemon
only starts up when I start gpg-agent
in my .zshrc
it gets exclusive control of the card before gpg
ever gets a
chance.
The solution seems to be to add the directive pcsc-shared
to the file
~/.gnupg/scdaemon.conf
and then killall gpg-agent
to get it to reload its
configuration. According to my research the pcsc-shared
option is an “only if
you know what you’re doing” option but it seems to be stable for the moment. The
other proposed solutions of disabling and masking the pcscd
daemon with
systemctl
or putting disable-ccid
in ~/.gnupg/scdaemon.conf
either seemed
like overkill or didn’t work for me respectively.
Long story short I seem to still be able to use the GNOME smartcard subsystem
with things like Firefox while also using gpg
to SSH into my various servers.
Time will tell how well this works but for the moment it has me rolling again.