https://cli.github.com/manual/gh_auth_setup-git
This command configures git to use GitHub CLI as a credential helper.
- Git が GitHub へ push / pull するとき、
ghのログイン情報で認証するよう設定するコマンド - credential helper = Git が「ID とトークンちょうだい」と問い合わせる先のプログラム
メリット
gh auth loginしておけば、Git 用に PAT を別で発行・入力しなくていい
使わないと毎回入力が必要?
HTTPS で、helper が何も設定されていない場合だけ毎回入力になる。
- SSH(
git@github.com:...)で使っている → 不要(SSH 鍵で認証) - macOS の
osxkeychainなど別の helper がある → 初回だけ入力、以後は保存済みの値を使う - 入力するのはパスワードではなく PAT(GitHub は HTTPS でのパスワード認証を廃止済み)
- 確認:
git config --get-all credential.helper
なぜ SSH だと PAT 不要で、HTTPS だと必要?
- SSH: 事前に GitHub に公開鍵を登録 → 接続時に手元の秘密鍵で「本人の証明」を作って渡す
- 秘密鍵そのものは送らない。鍵ファイルが手元にあるので、毎回の入力は要らない
- HTTPS: 普通の Web 通信と同じで、リクエストに「ユーザー名 + トークン」を載せて本人確認する
- 何かが手元にトークンを持っていないと送れない → 入力する or helper(keychain / gh)に覚えさせる