OpenSC 提供 PKCS#11 介面讓應用程式 (Firefox、Thunderbird、OpenVPN、OpenSSH) 存取智慧卡/USB Token。Ubuntu 官方倉庫版本常較舊,若遇相容性問題需從源碼編譯最新版。本文記錄完整移除、相依編譯 (含 pcsc-lite)、安裝驗證流程。

sudo apt-get remove --purge libopensc2 libopenct1 opensc-pkcs11 opensc
sudo apt-get update
sudo apt-get install build-essential libssl-dev libpcsclite-dev pcscd \
automake autoconf libtool pkg-config git
libpcsclite-dev:PC/SC Lite 開發套件 (智慧卡通訊核心)pcscd:PC/SC 守護程式 (管理讀卡機裝置)# 移除套件版
sudo apt-get remove libpcsclite-dev
# 下載最新源碼
wget https://github.com/LudovicRousseau/PCSC/releases/download/1.9.5/pcsc-lite-1.9.5.tar.bz2
tar xf pcsc-lite-1.9.5.tar.bz2
cd pcsc-lite-1.9.5
# 編譯安裝
./configure --prefix=/usr --enable-usbdropdir=/usr/lib/pcsc/drivers
make
sudo make install
# 更新共享庫快取
sudo ldconfig
git clone https://github.com/OpenSC/OpenSC.git
cd OpenSC
# Bootstrap (產生 configure)
./bootstrap
# 配置
./configure --prefix=/usr \
--sysconfdir=/etc \
--enable-openssl \
--enable-pcsc \
--enable-readline \
--enable-zlib
# 編譯
make
# 安裝
sudo make install
# 更新庫快取
sudo ldconfig
# 檢查版本
opensc-tool --version
# 0.23.0
# 列出偵測到的讀卡機/卡片
opensc-tool -l
# #1: Reader name [Identiv uTrust 2700 R]
# PKCS#11 模組路徑
ls -l /usr/lib/opensc-pkcs11.so
# 或 /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so
| 應用 | 設定方式 |
|---|---|
| Firefox / Thunderbird | 偏好設定 → 隱私權與安全性 → 安全裝置 → 載入 → 模組: /usr/lib/opensc-pkcs11.so |
| OpenVPN | pkcs11-providers /usr/lib/opensc-pkcs11.sopkcs11-id '... (用 openvpn --show-pkcs11-ids 取得) |
| OpenSSH (SSH 金鑰存卡) | ssh -I /usr/lib/opensc-pkcs11.so user@host或 ssh-add -s /usr/lib/opensc-pkcs11.so |
| GnuPG (智慧卡作為 GPG 金鑰) | gpg --card-status (需 scdaemon 支援 OpenSC) |
| 現象 | 原因 | 解決 |
|---|---|---|
pcscd 未偵測讀卡機 |
USB 裝置權限 / udev 規則缺失 | lsusb 確認 VID:PID → /etc/udev/rules.d/99-pcscd.rules 加入規則 → udevadm control --reload |
opensc-tool -l 顯示 "No readers found" |
pcscd 未運行 / 驅動未載入 | systemctl status pcscd、systemctl start pcscd、檢查 /usr/lib/pcsc/drivers/ 有無 .bundle |
| PKCS#11 模組載入失敗 | 架構不符 (32/64 位元) / 相依庫缺失 | file /usr/lib/opensc-pkcs11.so 確認 ELF 類別、ldd 檢查相依 |
編譯錯誤 PCSC/winscard.h not found |
缺少 libpcsclite-dev |
安裝套件或源碼編譯 pcsc-lite 並確認 pkg-config --cflags libpcsclite |
sudo systemctl enable pcscd
sudo systemctl start pcscd
# 開機自啟、即時啟動
完成編譯安裝後,系統即擁有最新版 OpenSC,支援最新智慧卡晶片、PKCS#11 標準擴展、硬體加密操作,滿足企業級強認證、VPN 憑證、程式碼簽章等場景需求。
Linux/Unix md5sum 指令驗證檔案完整性與比對差異
Ubuntu 14.04 不支持 exFAT 格式 U 盤?一鍵安裝 exfat-utils 解決
使用 BFO (boot.fedoraproject.org) 透過網路快速安裝 Fedora Linux
Linux XF86Setup 指令詳細解析:XFree86 圖形化配置工具語法與參數
Ubuntu 安裝 Intel Fortran 編譯器 ifort 完整步驟:依賴套件、授權序號、環境變數設定與驗證
Linux 檔案系統故障排查與修復:OSD 部署失敗、I/O 錯誤、命令無回應、資料搶救完整流程