Re: .authinfo の暗号化

From: Kenichi Okuyama <kenichi.okuyama_at_gmail.com>
Date: Fri, 27 Mar 2026 15:43:52 UTC
もしかして> --no-tty が必要?

奥山 健一(Kenichi Okuyama)

2026年3月28日(土) 0:03 丸山直昌 <masa@amogha.jp>:

> 家庭菜園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
>
>