我有一个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,最后从密钥环中删除密钥。