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

在命令行里用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.gztar xzvf v0.6.3.tar.gzcd docker-credential-helpers-0.6.3make pass这里会自动生成一个bin目录cd bincp docker-credential-pass /usr/bin3、生成GPG密钥对
gpg --gen-key输入 userid  ,  这里用harbor登陆账户admin测试邮件地址 , 可以留你自己的邮件地址然后会问你是否确定选用这个用户表示 , 选择O然后会提示你输入管理秘钥两次(非admin用户登陆harbor的密码) , 也是为了防止用户忘记存储的密码 。
解决Docker命令行登陆Harbor报警的问题

文章插图
到这一步密钥对生成
查看现有秘钥对
gpg --list-keys
解决Docker命令行登陆Harbor报警的问题

文章插图
查看现有密钥对
如果有公钥私钥 , 务必先删除私钥 , 再删除公钥
gpg ---delete-secret-keys KEY-IDgpg --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报警的问题 。
原创文章辛苦 , 欢迎大家转发 , 点赞 , 留言讨论 。

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


    推荐阅读