Re: .authinfo の暗号化
- Reply: Kenichi Okuyama : "Re: .authinfo の暗号化"
- In reply to: 丸山直昌 : ".authinfo の暗号化"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 27 Mar 2026 15:02:51 UTC
家庭菜園FreeBSD愛好家 丸山です。
gpg -c .authinfo で暗号化ができない問題ですが、その後色々調べたところ現
象を詳しく把握することができました。
まず私が試した gpg ですが
% gpg --version
gpg (GnuPG) 2.4.7
libgcrypt 1.11.0
Copyright (C) 2024 g10 Code GmbH
License GNU GPL-3.0-or-later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Home: /usr/home/maruyama/.gnupg
サポートしているアルゴリズム:
公開鍵: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
暗号方式: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256,
TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256
ハッシュ: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
圧縮: 無圧縮, ZIP, ZLIB, BZIP2
です。
私が直面していた無限ループに陥って暗号化ができない問題は、テストとして使っ
たパスフレーズが7文字以下で、短すぎることが直接的な原因でした。8文字以上
の文字列を使えば暗号化はこの方法でできることがわかりました。konsole上で
できます。
では何故7文字以下でも ttyv 画面上ではできたのかという点ですが、何とstty
の columns が関係していたのです。私が普段使っているディスプレーは
1920x1080の解像度、標準的には起動後に ttyv の画面が
54 rows; 192 columns; となります。non ascii utf-8 フォントを入れていない
ので字化けしますが、これだと 7文字以下のパスフレーズを入れた場合に無限ルー
プに陥らずに暗号化ができます。konsole を横に大きくしてgpg -c の実験をし
てみると、columns が171以下の場合には同じように 7文字以下のパスフレーズ
で無限ループになるのですが、columns 172 以上だと
警告: 安全とは言えないパスフレーズが入力されました。
パスフレーズは最低でも8文字以上でなければなりません。
<それでもこれを使います> <新しいパスフレーズを入力してください>
と表示されて <それでもこれを使います> の方を選択すると暗号化は成功します。
これが私が字化け部分が読めない状態でやっていたことでした。
しかし、この gpg の仕様は酷すぎますね。私は普段 konsole を 110 columns;
で使っているのですが、それだと8文字以上のパスフレーズを入れて使う場合で
も、画面は乱れて、極めて使い難い状態です。その上7文字以下のパスフレーズ
だと何の警告も表示されずに再度パスフレーズ入力画面になってしまいます。
80 columns で動かない文字型メニューインターフェースなんて、呆れて言葉も
ありません。
皆さんお使いのバージョンの gpg はどうなっていますか。
Thu, 26 Mar 2026 09:21:53 +0900
丸山直昌 <masa@amogha.jp> writes:
>emacs で smtpmail を使う場合にsmtp 接続認証パスワードは ~/.authinfo に入
>れておくわけですが、平文で入れておくのは(自分一人しかユーザがいないシス
>テムでも)気持ちが悪いので、暗号化を試みていたのですが、うまく行かずに困っ
>ていました。gpg にバグがあるのか、或いは gpg の使い方が間違っているのか、
>数日悩んでいたのですが、ChatGPTに聞いてもやはり
>
> gpg -c .authinfo
>
>とするか、emacs を使って .authinfo.gpg を作れ、という答えで、FreeBSD13.5
>ではいずれもうまく行きません。10.2の時代には(kwalletを使わずに) gpg -c
>を使って自前で各種パスワード情報を暗号化していた経験があるので、「gpg2に
>なって何か変わったのか?」とも思ったのですが、ひょっとして curses回りの
>トラブルか?と疑って
>
> Xwindows 上の Konsole で gpg -c コマンドを使うと画面が乱れてうま
> く動かないのですが、どうしたら良いのでしょうか。
>
>とChatGPTに聞いてみたところ、
>
> これはわりと典型的な問題で、原因は GPG が「curses系のピンエント
> リ(パスフレーズ入力UI)」を使おうとして Konsole と相性が悪いこ
> とです。
>
>という答えでした。しかし示された解決法はいずれもFreeBSD13.5では使えない
>ものでした。konsole の他 xterm, xfce端末なども試してみましたが、いずれも
>パスフレーズを入力する画面が乱れ、「OK」を選択しても同じ乱れた画面が再度
>表示されて無限ループに陥ります。最後にたどり着いた方法は ctrl+atl+F2 で
>ttyv1画面に移り、そこで gpg -c .authinfo をやることです。これだと utf-8
>の文字はすべて字化けしますが、画面が無限ループに陥ることなく無事に
>.authinfo.gpg ができます。
>
>これで目出度く解決か、と思ったのですが、まだ問題がありました。smtpmailの
>設定を行った上でメールを作り C-c C-c でメールを送信しようとすると、今度
>は emacs は .authinfo.gpg の解読段階で躓いてエラーとなり、メールが送れま
>せん。しかしこれはもう一度 C-c C-c をやると送れます。おそらく gpg-agent
>が働いて二度目は パスフレーズの入力を求めないからだと推測しています。
>
>あまり綺麗な解決法ではないですが、ま、一応当初の目的は達成できたというと
>ころです。もう少しマシな解決法はないですかね。
>
>FreeBSD14.x ではどうなのでしょうか。
>
>--------
>丸山 直昌 まるやま なおまさ
>メールアドレス: masa@amogha.jp