ローカル環境のDocker Hubのパスワードをpassで管理する方法

ローカル環境のDocker Hubのパスワードをpassで管理する方法

Apr 23, 2019
Docker, DockerHub

Ubuntu用

なぜDocker Hubのパスワードをpassを使って管理するか?
ローカルからDocker Hubにログインすると, その時のパスワードを平文のまま保存されるから.
  1. ここからdocker-credential-passの最新バージョンをダウンロードする.
  2. tar -zxvf docker-credential-pass.tar.gz (解凍する.)
  3. mv docker-credential-pass /usr/local/bin (PATHが通ってるところにファイルを移動する.)
  4. sudo apt-get install gpg pass ( gpgpassをインストール.)
  5. gpg --generate-keyで新しい秘密鍵と公開鍵の組を作る.
  6. gpg --list-keysで出てきた, pubの16進数の40文字(大文字のA-F, 0-9の文字列)をコピーする.
  7. pass init AAAAAAAAAABBBBBBBBBBCCCCCCCCCCDDDDDDDDDでpassを初期化する.
  8. pass insert docker-credential-helpers/docker-pass-initialized-checkでとりあえずのディレクトリを作成する.
  9. docker-credential-pass list{}と返ってくる.
  10. ~/.docker/config.json{"credsStore": "pass"}と書き込む.
  11. docker loginでDockerにログインする.

うまくいかないときは権限をchmodを使って変更してみる.

curl -O https://github.com/docker/docker-credential-helpers/releases/download/v0.6.0/docker-credential-pass-v0.6.0-amd64.tar.gz
tar -xvf docker-credential-pass.tar.gz
mv docker-credential-pass /usr/local/bin
apt-get install gpg pass
gpg --generate-key
gpg --list-keys
> pub   rsa2048 2019-04-22 [SC] [有効期限: 2021-04-21]
>       D7D35B60A7FA571541959AF3C4821C32793D5F5A // ここの公開鍵をコピーする
> uid           [  究極  ] solareenlo <test@example.com>
> sub   rsa2048 2019-04-22 [E] [有効期限: 2021-04-21]
pass init D7D35B60A7FA571541959AF3C4821C32793D5F5A // 上記でコピーした公開鍵をペーストする
pass insert docker-credential-helpers/docker-pass-initialized-check // ここで入力するパスワードは初期化されるので何でも良い.
pass show docker-credential-helpers/docker-pass-initialized-check // 先ほど入力したパスワードが表示される
docker-credential-pass list
vim ~/.docker/config.json
// {
//   "credsStore": "pass"
// }
/* と~/.docker/config.jsonに書き込む. */
docker login