LEEUNITYAssets / Content / 博客.asset
层级
⌄ Lee / Homepage
INSPECTOR
Type
Content
Name
博客
lee@mtftm.com ↗GitHub ↗
N023SYSTEM / LINUX

技术 / 日本語

ターミナル環境でのGPG署名エラーの修正

ターミナルを使ってサーバーに接続し、Yubikey内のGPGキーでGitコミットに署名しようとした際にエラーが表示されました。 簡単な調査内容:

更新
2026.07.18
阅读
1 分钟
语言
日本語

問題の調査

ターミナルを使ってサーバーに接続し、Yubikey内のGPGキーでGitコミットに署名しようとした際にエラーが表示されました。 簡単な調査内容:

有効な秘密鍵が存在するか確認:

gpg --list-secret-keys --keyid-format LONG

スマートカードが正しく読み取れるかテストする:

gpg --card-status

GPGを直接使って署名テスト:

echo "test" | gpg --clearsign

出力結果:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

test
gpg: signing failed: Inappropriate ioctl for device
gpg: [stdin]: clear-sign failed: Inappropriate ioctl for device

エラーメッセージから、複数のターミナル環境ではGPGが現在使用している端末デバイスを自動認識できず、PINコードの入力プロンプトが正しくユーザーに伝わらないことが分かりました。 GPG_TTY環境変数の設定で修正を試みます:

export GPG_TTY=$(tty)

再度署名テストを行う:

認証ダイアログが正常に表示され、これで問題が解決されました。