保存凭据时出错:存储凭据时出错 - 错误:退出状态 1,输出:`获取凭据时出错 - 错误:退出状态 1

Sta*_*tyn 63 authentication ubuntu credentials docker

我有 Ubuntu 20.04,我尝试使用docker login登录终端,但得到:

docker login 
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: sfelshtyn
Password: 
Error saving credentials: error storing credentials - err: exit status 1, out: `error getting credentials - err: exit status 1, out:` no usernames for https://index.docker.io/v1/``
Run Code Online (Sandbox Code Playgroud)

Tan*_*lam 82

尝试执行以下命令

service docker stop
rm ~/.docker/config.json
service docker start
Run Code Online (Sandbox Code Playgroud)

然后尝试 docker login 它会要求输入用户名和密码

对于 Macos m2 以下作品

sudo chown -R $(id -u):$(id -g) $HOME/.docker
Run Code Online (Sandbox Code Playgroud)


Sta*_*tyn 42

我读了Error savingcredentials: error savingcredentials - err: exit status 1, out: pass store is uninitialized来解决我的问题,但它们都没有帮助。

然后我切换到docker官方文档,发现在docker安装过程中并没有走完凭证管理流程。

我做了几个步骤

  1. gpg --generate-key
  2. pass init <generated gpg-id public key>
  3. docker pull molly/privateimage

之后我再次尝试 docker 登录。我传递了我的个人数据,它对我有用。我解决了我的问题。

  • 谢谢,解决了我在 Ubuntu 22.04 上的问题 (3认同)

Hri*_*dam 22

这对我有用 -

pass remove -rf docker-credential-helpers
Run Code Online (Sandbox Code Playgroud)


Vis*_*mar 18

  1. credStore拔掉钥匙~/.docker/config.json,一切正常。

    前:

     {
         "auths": {},
         "credsStore": "desktop", // remove this line, irrespective of the value of credStore
         "currentContext": "desktop-linux"
     }
    
    Run Code Online (Sandbox Code Playgroud)

    后:

     {
         "auths": {},
         "currentContext": "desktop-linux"
     }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 消除docker-credential-helpers

     {
         "auths": {},
         "credsStore": "desktop", // remove this line, irrespective of the value of credStore
         "currentContext": "desktop-linux"
     }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 生成 GPG 密钥对

     {
         "auths": {},
         "currentContext": "desktop-linux"
     }
    
    Run Code Online (Sandbox Code Playgroud)
  4. 初始化pass实用程序,它是一个密码管理器,使用 GPG 加密来存储和管理密码

    rm -rf ~/.password-store/docker-credential-helpers
    
    Run Code Online (Sandbox Code Playgroud)

参考:

  1. https://github.com/docker/docker-credential-helpers/issues/24#issuecomment-595692091
  2. https://github.com/docker/docker-credential-helpers/issues/60#issuecomment-336748027


小智 9

以下内容对我有帮助:

  1. rm -rf ~/.password-store/docker-credential-helpers
  2. gpg --generate-key
  3. pass init <generated gpg-id public key>


Gre*_*own 6

只是为了添加另一个从此处其他答案中获取的解决方案。

如果您已经启动 Docker Desktop 并且看到以下错误:

error storing credentials - err: exit status 1, out: `error getting credentials - err: exit status 1
Run Code Online (Sandbox Code Playgroud)

停止应用程序:

systemctl --user stop docker-desktop
Run Code Online (Sandbox Code Playgroud)

如果您已按照credential-management-for-linux-users中的步骤进行操作,请删除现有的密钥:

rm -rf ~/.password-store/docker-credential-helpers
Run Code Online (Sandbox Code Playgroud)

生成新密钥并提供正确的凭据:

gpg --generate-key
Run Code Online (Sandbox Code Playgroud)

注意:确保您在用于登录 DockerHub 的密码中设置了正确的电子邮件地址。我用错了,这就是 Docker Desktop 抛出错误的原因。

这将打印出如下文本:

pub   rsa3072 2023-06-13 [SC] [expires: 2025-06-12]
      9F53995439D023FD
uid                      Your Name <Your Email>
sub   rsa3072 2023-06-13 [E] [expires: 2025-06-12]
Run Code Online (Sandbox Code Playgroud)

然后使用gpd-id该部分中显示的内容pub进行初始化pass,例如:

pass init 9F53995439D023FD
Run Code Online (Sandbox Code Playgroud)

最后,启动 Docker Desktop:

systemctl --user start docker-desktop 
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!


更新:我在 Ubuntu 上登录 AWS ECR 时也遇到了问题,错误如下:

Error saving credentials: error storing credentials - err: exit status 1, out: `error storing credentials - err: exit status 1, out: `exit status 1: gpg: public key of ultimately trusted key 9F53995439D023FD not found
gpg: public key of ultimately trusted key 7F525559F4750A05 not found
gpg: public key of ultimately trusted key 3D39C9F57C3C2E11 not found
gpg: public key of ultimately trusted key DCB9A14562B73138 not found
gpg: public key of ultimately trusted key 91B3075B62503284 not found
Password encryption aborted.``
Run Code Online (Sandbox Code Playgroud)

我能够按照此要点中的步骤解决问题并登录 ECR 。我将在下面重现它们,以防将来删除要点:

error storing credentials - err: exit status 1, out: `error getting credentials - err: exit status 1
Run Code Online (Sandbox Code Playgroud)