无法在Linux系统中生成GPG密钥。

11

我无法在Linux中生成GPG密钥。

sudo gpg --gen-key      # This is the command to try to generate key

错误

You need a Passphrase to protect your secret key.

gpg: problem with the agent: Timeout        
gpg: Key generation canceled.
请告诉我哪里做错了。

请尝试不使用sudo或直接使用root登录。 - Rupesh
你尝试过使用 sudo --preserve-env YOUR_COMMAND 吗? - Rupesh
我使用上述命令得到了以下结果:sudo --preserve-env gpg --gen-key sudo: 无效选项 -- '-' 用法:sudo [-D level] -h | -K | -k | -V 用法:sudo -v [-AknS] [-D level] [-g groupname|#gid] [-p prompt] [-u user name|#uid] - user2932003
使用sudo -E YOUR_COMMAND进行尝试 - Rupesh
@rups 我尝试了另一条命令 sudo -E gpg --gen-key,但是出现了相同的错误 gpg: problem with the agent: Timeout。gpg: 密钥生成已取消。 - user2932003
显示剩余3条评论
1个回答

15

请查看此内容

1)运行gpg-agent命令:

gpg-agent --daemon --use-standard-socket --pinentry-program /usr/bin/pinentry-curses

2)生成足够的熵

sudo rngd -r /dev/urandom

3) 最后运行gpg命令生成密钥:

gpg --gen-key

请使用非root用户运行所有命令。

请使用创建gpg密钥时使用的同一用户登录。

1.我们将按如下方式导出我们的公钥和私钥:

  user$ gpg --export -a -o mypublickey.txt user@replaceurmail.com
  user$ gpg --export-secret-key -a -o myprivatekey.txt user@replaceurmail.com
  user$ ls my*

我的私钥文件名为myprivatekey.txt,公钥文件名为mypublickey.txt。

  1. 使用同一用户导入密钥

User$ gpg --import myprivatekey.txt
  • 现在尝试使用相同用户解密


  • 1
    我又遇到了同样的错误...您需要一个密码短语来保护您的秘密密钥。gpg: 代理出现问题:超时 gpg: 密钥生成已取消。 - user2932003
    2
    最后一次尝试:1. 请终止所有gpg-agent进程并清理~/.gnupg文件夹,然后运行“eval $(gpg-agent --daemon)”命令。2. 使用“pgrep gpg-agent”命令检查gpg-agent是否正在运行。3. 请运行“export GPG_TTY=$(tty)”命令,然后4. 运行gpg --gen-key命令。 - Rupesh
    2
    在Debian下使用rngd,您需要安装rng-tools包。 - jeremiah
    1
    “sudo rngd -r /dev/urandom” 是我生成密钥所需的唯一命令。 - Neurotransmitter
    1
    当我运行命令时,会得到以下内容: gpg-agent[3745]: 警告: "--use-standard-socket" 是一个已过时的选项 - 它没有效果 gpg-agent[3745]: 目录 '/home/vscode/.gnupg/private-keys-v1.d' 已创建 gpg-agent: gpg-agent 已经在运行中 - 不启动新的实例。 - Damian
    显示剩余14条评论

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接