在命令行里用Docker登陆harbor会出现如下信息 , 我看网上的文章大部分都是截图说我登陆成功了 , 却没有人仔细看看如下这行写的是什么? 你的密码将存储在未加密的config.json文件中
WARNING! Your password will be stored unencrypted in /home/turing/.docker/config.json.
文章插图
报警信息
之前文章也说过 , 我们公司对安全比较重视 , 这样搭建完的私有镜像仓库也通过不了审核 。那怎么来合规呢?目前我采用的方法是使用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的密码) , 也是为了防止用户忘记存储的密码 。
文章插图
到这一步密钥对生成
查看现有秘钥对
gpg --list-keys
文章插图
查看现有密钥对
如果有公钥私钥 , 务必先删除私钥 , 再删除公钥
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
文章插图
修改前的config.json
为
文章插图
修改后的config.json
然后在本地先登陆测试一下
文章插图
本地登陆
登陆成功 , 不报错 , 远程用windows服务器登陆试试 , 第一次登陆会报无效或过期 , 登陆成功后 , logout再登陆就不报了 。
文章插图
Win登陆
至此 , 终于解决了Docker命令行登陆Harbor报警的问题 。
原创文章辛苦 , 欢迎大家转发 , 点赞 , 留言讨论 。
【解决Docker命令行登陆Harbor报警的问题】
推荐阅读
- 遭遇DDOS攻击TG-NET告诉你如何解决?
- 佳能喷墨打印机报错不能用?看到这些代码这样做立马解决
- 地暖有的热有的不热怎么解决,地暖冷热不均匀正常吗
- 暖气进水热回水不热怎么办,地暖回水不热解决办法
- 大型会议wifi覆盖之清除WiFi死角解决方案
- 厨房顶面有水珠是渗水吗,厨房吊顶有水蒸气解决方案
- 学会这五个方法,轻松解决手机/电脑色差问题
- 分布式数据层 解决问题 分库分表 读写分离
- 基于Docker实现MYSQL主从复制
- 在linux服务器上如何下载ftp上面的文件?解决各类问题!lftp详解