<返回更多

解决Docker命令行登陆Harbor报警的问题

2019-11-14    
加入收藏

在命令行里用Docker登陆harbor会出现如下信息,我看网上的文章大部分都是截图说我登陆成功了,却没有人仔细看看如下这行写的是什么? 你的密码将存储在未加密的config.json文件中

WARNING! Your password will be stored unencrypted in /home/turing/.docker/config.json.
解决Docker命令行登陆Harbor报警的问题

报警信息

之前文章也说过,我们公司对安全比较重视,这样搭建完的私有镜像仓库也通过不了审核。那怎么来合规呢?目前我采用的方法是使用pass命令工具+docker-credential-pass命令工具,

1、Pass工具

pass是个密码存储管理工具,主站是

https://www.passwordstore.org/

目前的稳定版是1.7.3,下载地址

https://git.zx2c4.com/password-store/snapshot/password-store-1.7.3.tar.xz

安装方法非常简单,解包后在解包后的安装目录中直接运行

make install

你就可以使用这个工具了。

2、Docker-Credential-Pass工具

主站是

https://github.com/docker/docker-credential-helpers/releases

目前最新版本0.6.3

wget https://github.com/docker/docker-credential-helpers/archive/v0.6.3.tar.gz
tar xzvf v0.6.3.tar.gz
cd docker-credential-helpers-0.6.3
make pass
这里会自动生成一个bin目录
cd bin
cp docker-credential-pass /usr/bin

3、生成GPG密钥对

gpg --gen-key
输入 userid , 这里用harbor登陆账户admin测试
邮件地址,可以留你自己的邮件地址
然后会问你是否确定选用这个用户表示,选择O
然后会提示你输入管理秘钥两次(非admin用户登陆harbor的密码),也是为了防止用户忘记存储的密码。
解决Docker命令行登陆Harbor报警的问题

到这一步密钥对生成

查看现有秘钥对

gpg --list-keys
解决Docker命令行登陆Harbor报警的问题

查看现有密钥对

如果有公钥私钥,务必先删除私钥,再删除公钥

gpg ---delete-secret-keys KEY-ID
gpg --delete-key KEY-ID

生成Harbor用户admin的pass存储环境,主目录在~/.password-store

pass init admin

将admin用户登陆Harbor的密码加密后放置到password-store目录中

pass insert admin

输入两次登陆Harbor的密码

想删除用如下命令

pass rm admin

还有更多的pass命令,大家看MAN手册吧

4、登陆

修改 ~/.docker/config.json

解决Docker命令行登陆Harbor报警的问题

修改前的config.json

解决Docker命令行登陆Harbor报警的问题

修改后的config.json

然后在本地先登陆测试一下

解决Docker命令行登陆Harbor报警的问题

本地登陆

登陆成功,不报错,远程用windows服务器登陆试试,第一次登陆会报无效或过期,登陆成功后,logout再登陆就不报了。

解决Docker命令行登陆Harbor报警的问题

Win登陆

至此,终于解决了Docker命令行登陆Harbor报警的问题。

原创文章辛苦,欢迎大家转发,点赞,留言讨论。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>