YubiKey 4のCCIDを無効化してGDM3でSmartcardと認識されないようにする

家で使ってるYubiKey 4を挿したままUbuntuを起動するとログイン画面(GDM3)でユーザー名を選択する画面が出ずにスマートカードログイン専用のインターフェースに切り替わってしまって、パスワード認証や指紋認証が使えなくなる。YubiKey挿しっぱなしだったわと気づいてUSBポートから抜けばいつものユーザーリストの画面に戻るけどもやや不便な状態だった。ただ初期インストール状態ではそういう風な動きにはならないっぽかったのでちょっと調べて対策した。

そもそもスマートカードをきちんとデスクトップログイン時の認証に使うには、ユーザーとの紐づけだったりそれなりのステップを踏む必要があって(チュートリアル例)、なぜスマートカードモードに行くのかよくわからなかった。ただバグ報告は存在して、いろいろ見てみるとpcscdパッケージの有無でスマートカードモードに行くかどうかの違いがあったので、なんでこのパッケージがインストールされたかを見ると一目瞭然。

$ sudo apt autoremove --purge pcscd
REMOVING:                       
  libccid*  libyubikey-udev*  pcscd*  python3-fido2*  python3-pyscard*  python3-ykman*  yubikey-manager*

Summary:
  Upgrading: 0, Installing: 0, Removing: 7, Not Upgrading: 2
  Freed space: 2,940 kB

Continue? [Y/n] 

YubiKeyを設定するために入れているパッケージのせいでスマートカード用のサービスも入る、と。ちなみに以前はyubikey-personalization-guiを使ってたけどnobleにはなかったので、yubikey-manager-qtの方に移行したけど、これもupstream的には2026年2月でEOLみたい。結構バシバシEOLにして次はこれ使ってくださいね、みたいな方針らしい。

で、どうするのがいいかなと考えたけども、一番手っ取り早いのはそもそもYubiKey 4をスマートカードとして使っていないので機能自体を無効化した。

デフォルトでOTP+FIDO+CCIDとなっているのを、

$ ykman list
YubiKey 4 (4.3.5) [OTP+FIDO+CCID] Serial: NNNNNNN

CCID(Chip Card Interface Device)を除いてあげる。

$ ykman config mode OTP+FIDO
Set mode of YubiKey to OTP+FIDO? [y/N]: y
Mode set! You must remove and re-insert your YubiKey for this change to take effect.
$ ykman info
Device type: YubiKey 4
Serial number: NNNNNNN
Firmware version: 4.3.5
Enabled USB interfaces: OTP, FIDO

Applications
Yubico OTP    Enabled
FIDO U2F      Enabled
FIDO2         Not available
OATH          Disabled
PIV           Disabled
OpenPGP       Disabled
YubiHSM Auth  Not available

これでykmanyubikey-managerパッケージ)の依存関係としてpcscdがインストールされていて、さらにYubiKey 4が挿さっていたとしてもGDM3はユーザー名のリストを出すようになった。