我想使用pass
凭证存储进行 DockerHub 登录。因此,主要以下这个链接
- 我安装了
pass
(apt install pass
) - 我安装了
docker-credential-pass
,但是按照下面的说明 4 到 7如何设置凭证存储在这个其他链接 - 我修改了
~/.docker/config.json
文件添加键值对"credsStore": "pass"
- 由于我有一个 GPG ID,我可以通过指令
gpg --list-secret-keys
或也可以看到它(在我看到的gpg -K
旁边的行中),并且我经常使用它来加密和解密一些文件,再次关注uid
[ultimate] MY_NAME <MY_EMAIL>
第二个链接或者也是第 2 点这个,我做到了pass init MY_EMAIL
。我在这里得到了
mkdir: created directory '/home/user/.password-store/'
Password store initialized for MY_EMAIL
所以,似乎一切都很顺利,直到这里,但是当我尝试docker login
或者pass insert docker-credential-helpers/docker-pass-initialized-check
我得到
gpg: error retrieving 'MY_EMAIL' via WKD: No data
gpg: MY_EMAIL: skipped: No data
gpg: [stdin]: encryption failed: No data
Password encryption aborted.
不过,正如我之前所说,我经常使用,gpg --output out_file.gpg --encrypt --recipient MY_EMAIL input_file
没有任何问题。
进一步地,解决方案为gpg:检索错误'[电子邮件受保护]' 通过 WKD似乎不适合我的问题,因为当我使用上面提到的命令查找密钥时gpg
,我可以看到expires: 2023-07-20]
.
那么,现在的问题是什么?我能做什么?我在 Debian 11 上工作。
也许这个问题与下一个索赔有关https://github.com/docker/docker-credential-helpers:
`pass` needs to be configured for `docker-credential-pass` to work properly. It must be initialized with a `gpg2` key ID. Make sure your GPG key exists is in `gpg2` keyring as `pass` uses `gpg2` instead of the regular `gpg`.
如果这是问题我该怎么办?
我也尝试过这样做,pass init ID
而不是从线路pass init MY_EMAIL
中获取ID ,而是遇到了诸如gpg2 --list-secret-keys --keyid-format=long
sec rsa3072/ID date ...
这里,但是那里给出的解决方案也不起作用。
提前致谢!
答案1
解决了!
问题是“我的”旧 GPG ID 属于我的root
用户,所以我需要用我的非 root 生成一个密钥user