gpg:仅从密钥服务器下载密钥

gpg:仅从密钥服务器下载密钥

我有一个keyid(648ACFD622F3D138)和keyserver hkps://keyserver.ubuntu.com:。

我可以下载密钥使用类似如下的方式导入它:gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys 648ACFD622F3D138

但有可能吗仅下载将密钥作为文件,无需导入它在我的密钥环中吗?或者,有没有办法让 gpg 显示有关密钥的信息(与 中的信息相同gpg --list-keys)?

附言

原因:在导入之前,我只想检查其详细信息。

答案1

您可以通过将GNUPGHOME环境变量设置为另一个目录来实现此目的,然后在其中接收 alt 密钥环的密钥。您在此备用 gnupg 主目录中执行的任何 gpg 操作都不会影响密钥环或常规 gnupg 主目录中的任何其他数据。

您设置的 GNUPGHOME 仅在该终端会话内有效。当您关闭终端窗口时,gnupg 主目录将恢复为默认的 ~/.gnupg。您可以创建一个持久目录来用于此目的,也可以动态创建一个临时目录:

$ export GNUPGHOME=$(mktemp -d)

现在检索密钥:

$ gpg --keyserver pool.sks-keyservers.net --recv-keys 648ACFD622F3D138

现在您可以显示导入的密钥的信息:

$ gpg -k 648ACFD622F3D138

并将 ascii-armored 密钥文件导出到您的主目录。

$ gpg -ao ~/648ACFD622F3D138.asc --export 648ACFD622F3D138

使用完临时主目录后,只需关闭终端窗口即可。如果您决定要将密钥放入密钥环中,请从导出的文件中导入它。

答案2

这里有一个行,不会污染默认密钥环(如@OlofL)或创建额外的 gpg 主目录(如@fuzzydrawrings)。

gpg --no-default-keyring --keyring /tmp/keyring.gpg --keyserver keyserver.ubuntu.com --recv-key 98E5A594422A7F7CEC7A5DCD1E9E66385D3E4D5D && gpg --no-default-keyring --keyring /tmp/keyring.gpg --output /tmp/test2.gpg --export

您可以通过以下方式验证密钥文件内容gpg --show-keys test2.gpg

它利用--no-default-keyring选项来跳过默认密钥环数据库。

然后我们告诉它用 创建一个新密钥环文件--keyring。我们接收/导入密钥到其中。然后我们在临时密钥环文件中导出所有公钥。

如果您想下载多个密钥文件,您可能需要删除密钥环文件。

您甚至可以--recv-keys <fp1> <fp2> ...将多个密钥下载到单个文件中。

答案3

这个单行代码有效。我认为没有办法直接从密钥服务器导入到文件中命令,因此您必须链接几个命令。

gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 && \
gpg --export --armor 648ACFD622F3D138 > yourpubkey.gpg && \
gpg --batch --yes --delete-keys 648ACFD622F3D138

提示:如果您这样做是为了将密钥导入易于's trusted.gpg.d,删除--armor关键字。

它会将密钥导入到默认密钥环,然后将其导出到 yourpubkey.gpg,最后从密钥环中删除密钥。

相关内容