解決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.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報警的問題。


分享到:


相關文章: