Ubuntu 22.04 LTS でGit Credential Managerを使う

GitHubのリポジトリにHTTPS経由でPUSHするためにはGit Credential Managerを使う必要がある(パスワードでのログインが2021年で終了しているため)。Git Credential Manger をインストールする際のメモ。

github.com

事前設定

Credential storesの記載にしたがいながら設定する。

まず、gpgとpassをインストールする(該当個所)。

% sudo apt install gpg
% sudo apt install pass

GPGを使えるようにしたり、パスワードを保存しておくディレクトリの作成を行う。としてGitHubのユーザ名を使用した。

% git config --global credential.credentialStore gpg
% pass init <gpg-id>
% gpg --gen-key

次にキャッシュの設定を行う (該当個所)。

% git config --global credential.credentialStore cache
% git config --global credential.cacheOptions "--timeout 300"

Git Credential Managerのインストール

Debianパッケージを利用する (該当個所)。

最新版からDebパッケージをダウンロードしてくる。
github.com

以下の例でのダウンロードURLは最新版のものにすること。

% wget https://github.com/git-ecosystem/git-credential-manager/releases/download/v2.4.1/gcm-linux_amd64.2.4.1.deb
% sudo dpkg -i gcm-linux_amd64.2.4.1.deb
% git-credential-manager configure

初回アクセス時

ログインが必要な処理(git clone, git push, git pull)を行う初回時にGit Credential Manager経由でログインを行う。なお、日本語環境で運用していると「fatal: Default font family name can't be null or empty」というメッセージがでてうまくいかない。Git Credential Manager (GCM) でGithubへの認証をセキュアに実現する (Windows, WSL2, Linux)で記載のとおり、英語環境でgitコマンドを実行する。

% LC_ALL=C git clone https://github.com/...

すると、別ウィンドウが起動し、Git Credential Manager経由でGitHubにログインし、キャッシュの設定期間の間、GitHubのログインを自動化してくれる。