分发:如何解析上传GPG密钥时设置PGP密钥失败

Vignesh Surendrababu
2022-06-16 13:00

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

当将GPG密钥上传到工件并传播密钥以执行分发时,不希望看到下面提到的错误

错误:

  1. {" detail ": "设置PGP密钥失败"," message ": "设置PGP密钥失败"," status_code ":400}
  2. {"detail":"检查密钥是否需要口令失败","message":"设置PGP密钥失败","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": "-----开始PGP公钥块-----

----- end PGP公钥块-----",
"private_key": "-----开始PGP私钥块-----

----- 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在成功上传和传播成功后,预计将收到以下类似的输出{"报告":{“地位”:“成功”,“细节”:[{“jpd_id”:“JPD-1”、“名称”:“家”,“key_alias”:“my-default-key”,“状态”:“成功”},{“jpd_id”:“JPD-2”、“名称”:“边缘”、“key_alias”:“my-default-key”,“状态”:“成功”}]}}