我正在尝试以下场景。
在我的笔记本电脑上,我创建了一个委派密钥。 在服务器上,我创建了目标并授权了我的委托密钥 现在,当通过 docker trust 签署我的 Docker 映像时,我收到以下错误。
An error occurred during validation: rpc error: code = 5 desc = key 6505d5d177b8ad1868d721f0043d0f16f4fc7cdbf27a0940c6f1ef52a95b15b9 not found
这个
6505…
。 key 是另一台机器上目标的私钥,我当前机器上没有。
我正在尝试的事情可能吗?我是否必须以某种方式同步所有按键才能做到这一点?
出于备份原因以及限制谁有权访问这些密钥,希望将目标保留在服务器上。
我还提交了相关的 github 票证。
我找到了解决方案。
要实现这一点,需要让公证服务器管理快照。
默认情况下,此证书由客户端管理。
请参阅此处的修复。
https://github.com/philips-labs/dct-notary-admin/commit/bc0269d93370e2d3d474abdeaca6b0146a440144
现在,只有在给定目标上授权了委托密钥后,客户端才需要委托密钥。
notary -d ~/.docker/trust/ -s https://notary.docker.io key rotate docker.io/botsudo/action-docker-compose snapshot -r
这将消除对快照密钥的需要,如 Docker 文档所述。
如果您的存储库是使用 1.11 之前的 Docker Engine 版本创建的,那么在添加任何委托之前,您应该将快照密钥轮换到服务器,以便协作者不需要您的快照密钥来签名和发布标签: