如何配置 gpg 每个会话仅输入一次密码

如何配置 gpg 每个会话仅输入一次密码

是否可以配置gpg为仅输入密码一次,并且它适用于整个会话(我正在使用Ubuntu/XFce)?

我不确定它是如何gpg工作的,似乎默认功能是gpg要求gpg-agent输入密码,代理运行 pin-entry 来要求输入密码。

我只想在每个会话中使用 pinentry-curses 一次,所以我可以粘贴我的密码短语(我有hex一个句子中的字符串 - 我使用echo -n <SENTENCE> | str-hex)并从 Claws Mail 签署电子邮件而不输入密码短语(您不能将 pinentry-curses 与 Claws 一起使用)邮件)。

答案1

您可以使用本页描述的技术:

http://fvue.nl/wiki/Debian_4.0:_Installing_gpg-agent

要点如下:

  1. 安装 gpg-agent 和 pinentry 程序:

    sudo apt-get install gnupg-agent pinentry-curses
    
  2. 将下面的行添加到~/.profile.任何 POSIX 确认 shell 都应包含此文件。

    # Invoke GnuPG-Agent the first time we login.
    # Does `~/.gpg-agent-info' exist and points to gpg-agent process accepting signals?
    if test -f $HOME/.gpg-agent-info && \
        kill -0 `cut -d: -f 2 $HOME/.gpg-agent-info` 2>/dev/null; then
        GPG_AGENT_INFO=`cat $HOME/.gpg-agent-info | cut -c 16-`
    else
        # No, gpg-agent not available; start gpg-agent
        eval `gpg-agent --daemon --no-grab --write-env-file $HOME/.gpg-agent-info`
    fi
    export GPG_TTY=`tty`
    export GPG_AGENT_INFO
    

    当您登录时,这个小脚本将被激活。如果代理未运行,它将启动。当代理启动时,它会显示如何设置环境变量以便连接到它。该脚本将这些值保存在 中~/.gpg-agent-info,以便当您启动另一个登录会话时,脚本可以正确设置变量,从而使用代理。

每次启动时您只需输入一次密码。代理会将您的密钥存储在内存中,因此您无需再次输入密码。

相关内容