Re: .authinfo の暗号化
- In reply to: $B4];3D>>;(B : "Re: .authinfo $B$N0E9f2=(B"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
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 > >