👻

httpsでgitのパスワードを毎回入力したくない (主にLinux)

2021/11/18に公開

TL;DR

  • httpsのパスワードを暗号化して自動保存
    • 毎回パスワードを打つ必要がないよ
  • Caching your GitHub credentials in Gitを見ると良い
  • Windows
    • 昔試した気がする
  • Mac
    • 未検証
  • Linux
    • 上2つのページに書いてある方法だとできない

やりたいこと

httpscloneでもsshと同じようにパスワードを打ちたくない!

パスワードを平文保存したくない。

Git Credential Manager Core (GCM)

パスワードを保存/キャッシュしてくれるGit Credential Manager Coreがある。これは、複数のパスワードの管理方法を選ぶことができる。git cloneして一度パスワードを入力すると、自動でパスワードを覚えてくれる。なので、2回目以降はパスワードを覚える必要がない。

いくつかのサイトでは下2つが紹介されているが、私の使い方では両方ともよろしくない。

  • git config credential.helper store
    • ずっと入力する必要がない
    • 平文でパスワードが保存されてしまう
  • git config credential.helper cache
    • メモリに保存する。デフォルトで15分でキャッシュが切れる
    • メモリに保存する=再起動すると消える

暗号化して保存したい!

Mac

osxkeychain helperがよい。私は試したことがないが、このサイトが参考になると思います。

Windows

wincredがよい。昔試したときは、正常に動作しました。ネット上に記事がたくさん転がっているので、詳細はそちらにおまかせします。

Linux

gnome-keyringがよいと多くのサイトで紹介されているが、脆弱性かなにかがあるみたいで削除されているみたい(あまり良く知らない)。

そこで、GCM+secretserviceを使う。

詳細はGCMのレポジトリcredential storesを読んでほしいが、debファイルをダウンロードして下のコマンドを実行すると、自動でパスワードを暗号化して保存してくれる。

sudo apt-get install (ダウンロードしたdebファイル)
git-credential-manager-core configure
git config --global credential.credentialStore secretservice

Discussion