6.6. 配置客户端以验证签名
先决条件
- 客户端必须配置 sudo 权限才能验证签名。
流程
在终端类型中:
> sudo <name of editor> __/etc/containers/policy.json__
该文件可能类似如下:
{
"default": [{"type": "reject"}],
"transports": {
"docker": {
"quay.io": [{"type": "insecureAcceptAnything}],
"docker.io": [{"type": "insecureAcceptAnything}],
"_<server-address>_": [
{
"type": "signedBy",
"keyType": "GPGKeys",
"keyPath": "/tmp/containersig.txt"
}
这不会显示 quay.io 或 docker.io 的验证,因为类型是 insecureAcceptAnything,它会覆盖拒绝的默认类型。但是,可以从 <server-address> 验证,因为参数 type 已设置为 "signedBy"`。
注意
目前唯一支持的 keyType 是 GPG 密钥。
在
<server-address>条目下,修改keyPath<1> 以反映您的密钥文件的名称。{ "default": [{"type": "reject"}], "transports": { "docker": { "quay.io": [{"type": "insecureAcceptAnything}], "docker.io": [{"type": "insecureAcceptAnything}], "_<server-address>_1": [ { "type": "signedBy", "keyType": "GPGKeys", "keyPath": "/tmp/<key file name", 1 "signedIdentity": { "type": "remapIdentity", "prefix": "_<server-address>_", "signedPrefix": "0.0.0.0:8002" }- 保存并关闭该文件。
- 使用 podman 或您选择的客户端拉取文件:
> podman pull _<server-address>_/<container-name>:<tag name> --tls-verify=false
这会在没有错误的情况下验证签名。