gpg:无密码解密在终端中有效,但在基于 tmux 的 msmtp/mutt 中无效(无法打开 /dev/tty)

gpg:无密码解密在终端中有效,但在基于 tmux 的 msmtp/mutt 中无效(无法打开 /dev/tty)

第一次尝试:(在我的 msmtp 配置中使用 --no-tty )

  • (重启)
  • 头 -n 1 ~/.gnupg/gpg.conf

    使用代理

  • gpg 代理已启动:

    % systemctl --user status gpg-agent.service
    gpg-agent.service - GnuPG 私钥代理
    Loaded:已加载(/home/toogley/.dotfiles/systemd/user/gpg-agent.service;已启用)
    Active:活动(正在运行) ) 自欧洲中部时间 2015 年 12 月 30 日星期三 17:42:31 起; 23秒前进程:1290 ExecStart=/usr/bin/gpg-agent --daemon --homedir=%h/.gnupg (code=exited, status=0/SUCCESS)
    主PID:1295 (gpg-agent)
    CGroup: / user.slice/user-1000.slice/[电子邮件受保护]/gpg-agent.service └─1295 /usr/bin/gpg-agent --daemon --homedir=/home/toogley

/.gnupg

  • 密码在 devMailPW.asc 中: gpg -e -a -r $(我的电子邮件地址)
  • 如果我在 PW 之后放置 \n,它不会改变任何内容,如下所示:https://wiki.archlinux.org/index.php/GPG#Encrypt_and_decrypt
  • gpg -d devMail.asc ==> 第一次出现输入密码的对话框
  • 之后 gpg -d devMail.asc 不需要我输入我的密码
  • 使用 mutt 发送邮件会导致:

    gpg: gpg-agent 在此会话中不可用 gpg: 抱歉,根本没有请求终端 - 无法获取输入 msmtp: 无法读取 'gpg -d --no-tty /home/toogley/.dotfiles/mutt 的输出/accounts/devMailPW.asc'

  • 我的 muttrc 中的相关部分:

    设置 sendmail="msmtp --file=/home/toogley/.dotfiles/mutt/accounts/dev.smtp"

  • 我的 dev.smtp:

    密码评估“gpg -d --no-tty /home/toogley/.dotfiles/mutt/accounts/devMailPW.asc”

第二次尝试:(在我的 msmtp 配置中没有 --no-tty)

  • (和之前一样)
  • 使用 mutt 发送邮件会导致:

    gpg: 无法打开 tty `/dev/tty': 没有这样的设备或地址 msmtp: 无法读取 'gpg -d +/home/toogley/.dotfiles/mutt/accounts/devMailPW.asc' 的输出

第三次尝试:(使用--batch)

  • (和之前一样)
  • (% gpg -d --batch devMailPW.asc 工作正常)
  • 使用 mutt 发送邮件会导致:

    gpg:gpg-agent 在此会话中不可用
    gpg:无法在批处理模式下查询密码
    gpg:密码无效;请重试...
    gpg: 无法在批处理模式下查询密码
    gpg: 无效密码;请重试...
    gpg:无法在批处理模式下查询密码
    gpg:使用 2048 位 RSA 密钥加密,ID 3970B3E5,创建于 2015 年 12 月 28 日
    “”
    gpg:公钥解密失败:密码错误
    gpg:解密失败:密钥不可用
    msmtp:无法读取“gpg -d --batch
    +/home/toogley/.dotfiles/mutt/accounts/devMailPW.asc”的输出

编辑tmux 在这种情况下发挥着重要作用。

=> 第一种和第三种方法在我的 tmux 环境之外工作。它甚至会生成并询问我的密码。 (这很棒)

相关内容