如何在 Azure Cloud Shell 中生成 PGP 密钥

问题描述 投票:0回答:1

直到最近(几个月前)我还能够使用 Azure Cloud Shell 生成 PGP 密钥,如下所示:

gpg --homedir=$homedir --batch --gen-key pgp-params.txt

最近,当我尝试时,出现错误。

gpg: error running '/usr/bin/gpg-agent': exit status 2
gpg: failed to start gpg-agent '/usr/bin/gpg-agent': General error
gpg: can't connect to the gpg-agent: General error
gpg: agent_genkey failed: No agent running
gpg: key generation failed: No agent running

我什么也没改变。我以同一用户身份登录。我使用相同的 PS1 脚本。也许 Azure Cloud Shell 映像已更改?

底线,我现在怎样才能完成这个任务?

顺便说一句,之后我就跑了

gpg-agent --daemon

这导致了

gpg-agent: a gpg-agent is already running - not starting a new one

更新

如果我不使用 --homedir 选项,这个问题就会消失。我尝试设置 GNUPGHOME (认为问题可能与这个旧问题有关:here),但这并没有解决问题 - 我遇到了相同的错误。

所以,我仍然需要能够使用“批处理”模式并使用指定的主目录生成 PGP 密钥,而不是默认的主目录。

azure gnupg azure-cloud-shell
1个回答
0
投票

正如您所提到的,问题似乎仅在于云 shell 环境的更改。另一种方法是使用临时目录而不是使用主目录来生成密钥,然后稍后从临时目录复制到主目录。

tempdiry=$(mktemp -d)
gpg --batch --gen-key <filename> --output "$tempdiry/"

生成后,通过提供文件路径和目标文件路径来使用 cp 命令,如本文档中所述。

注意:还可以尝试探索 gpg2 或 gnupg 等替代方案,具体取决于 Azure Cloud Shell 中可用的内容以及适合你的环境的内容。

© www.soinside.com 2019 - 2024. All rights reserved.