⭐️gh auth setup-git

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)に覚えさせる