如何解决在GPG密钥上传过程中设置PGP密钥失败的问题

Vignesh Surendrababu
2023-01-22 11:06

JFrog Distribution使用GPG密钥对来保护发布包.分发到边缘节点的发布包由私钥签名,边缘节点用公钥验证签名。

当将GPG密钥上传到Artifactory并传播用于执行分发的密钥时,不期望观察到下面提到的错误

错误:

  1. {" detail ": " Failed setting new PGP key ", " message ": " Failed to set the PGP key ", " status_code ":400}
  2. {"detail":"Failed checking if passphrase required for key","message":"Failed to set the PGP key","status_code":400}

这表明,在POST请求中使用的json文件中,所需的参数可能不是预期的格式上传和传播GPG密钥或者GPG密钥没有在Linux上使用预期的GPG版本

如何克服错误?

步骤1:确保在Linux机器上使用GPG版本2.1及更高版本创建GPG密钥。

步骤2:检查有效负载JSON文件,该文件应该包括公钥和私钥以及如下所示的其他字段。当使用POST请求时,JSON文件上的set_as_default参数没有更新时,可能会发生错误。
“关键”:{
“别名”:“my-default-key”,
"public_key": "-----BEGIN PGP公钥块-----

----- end PGP公钥块-----",
"private_key": "-----BEGIN PGP PRIVATE KEY BLOCK----- .

----- end PGP私钥块-----"
},
"propagate_to_edge_nodes": true,
“fail_on_propagation_failure”:假的,
“set_as_default”:真的

使用下面的REST API上传和传播带有有效有效负载和GPG密钥的GPG密钥curl -u admin:password -H "Accept: application/json" -H "Content-Type: application/json" -X POST "http://localhost:8082/distribution/api/v1/keys/gpg" -T gpg.json . zip在成功上传和传播成功后,预计将收到以下类似的输出{"报告":{“地位”:“成功”,“细节”:[{“jpd_id”:“JPD-1”、“名称”:“家”,“key_alias”:“my-default-key”,“状态”:“成功”},{“jpd_id”:“JPD-2”、“名称”:“边缘”、“key_alias”:“my-default-key”,“状态”:“成功”}]}}