先日の記事に引き続き。
https://namonakimichi.hatenablog.com/entry/2020/06/03/060000
会社のPCでもある日突然出来なくなったので、設定し直したんですが、また別のハマりポイントがありました。(休憩がてら少し直してた)
書き込み権限
.gnupg
の書き込み権限がなくなってたっぽい。 sudo
をつけたら成功しましたが、アプリケーション側(ここではgit)からの呼び出しがコケるので、全部鍵消してフォルダごと一回消しました。
インタラクティブShellが上手く起動しない問題
これエラーログがあんまり出なかったので全然気づけなかったです。下記みたいなコマンドにしたら詳細に出たので、原因掴むのには使えるかも(記憶ベースなので間違えてるかも)。
gpg --gen-key --debug-all -vvv
失敗しているタイミングはパスフレーズ設定のところでした。
これも気がついたのが、先日も貼ったstackoverflowの記事でした。
https://stackoverflow.com/a/47087248
ここのpinentry-programと言うやつが、いわゆるパスワード設定が出るインタラクティブなインターフェイスだと解釈しました。
どうやらこれのかみ合わせが悪いと鍵の生成に失敗するようです。(エラーログもそんな感じのところで失敗していた)。
どういう指定にしたかは忘れましたが、下記のArchlinux wikiで設定できるとあったのでこれをいくつか試したような記憶。
https://wiki.archlinux.jp/index.php/GnuPG#pinentry
pinentry 変えたら無事に鍵ができました。
GPG_TTY が正しくないケース
2敗目です。前の記事でも取り上げてるので詳細は省きますが、 export GPG_TTY=$(tty)
したら直った。
まとめ
Linuxのインタラクティブなインターフェースの存在を知りました。これはこれで学びになりました。 なにか活かす機会があるかはわかりませんが、存在を知らなければ使おうという発送が出にくいので良い機会だったと思います。
またpgpでsignしたいだけなのに罠多すぎという気持ちになったのと、stackoverflowやっぱすごいわと思いました。
終わり。