有没有办法以非交互方式查找和批量导入公共密钥服务器上的 gpg 密钥列表?
我在一家公司的 IT 部门工作,想使用一个命令导入与我们的域相关联的所有电子邮件地址的公钥,而不需要一次选择每个密钥。
我已经能够使用 gpg 命令查找密钥并一次导入一个:
gpg --keyserver pgp.mit.edu --search-keys '@domain.com'
显然,用我们的域名替换“domain.com”。密钥服务器加载所有密钥后,我可以通过输入“1、2、3、...”来选择多个密钥。有点乏味,但还不错。
我还没有找到将它们全部导入的方法,或者是否可能。
我查看了 gpg 手册页以获取更多信息,但找不到任何可以完全按照我的要求执行的标志。我尝试将上述命令与--receive-keys
标志结合使用,但是,似乎需要指定密钥 ID 才能接收它们。这又导致需要一次导入一个密钥。
我突然想到,也许 gpg 没有一种批量导入机制来采取安全预防措施,这在某种程度上是合理的。如果是这样的话,我完全理解,但我没有找到任何相关记录。
答案1
没有办法搜索同时获取多个密钥,但无论如何你都不应该基于 UID 获取密钥!密钥服务器不执行任何类型的身份验证,只需在密钥服务器中搜索[email protected]
举个例子。功能上的“缺乏”可能就是故意为之,目的就是为了防止这种情况发生。
反而,使用钥匙的指纹通过维护部门密钥指纹列表并使用它gpg --recv-keys
从您选择的密钥服务器获取它们来访问易于验证的密钥。或者简单地从文件中导入密钥。如果您正在寻找无人值守的解决方案,那么您显然已经拥有适当的配置管理/编排系统。
同时,您还应该考虑建立一些“证书颁发机构”系统(例如,在所有计算机上受信任并用于在各个密钥上颁发证书的部门密钥),这样您就可以实际使用导入的密钥。