
macOSでGitHub Fine-grained PATを1Passwordに保存し、gitとghで使う手順
はじめに
お疲れ様です。あきとです。
今回は、GitHubのFine-grained Personal Access Token(以下、PAT)を1Passwordへ安全に保管し、git と gh の両方から使えるようにする手順をまとめました。
前提
- macOSに1Passwordデスクトップアプリがインストールされ、サインイン済み
gh(GitHub CLI)とgitがインストール済み
やってみた
1. GitHub Fine-grained PATを生成する
GitHubにログインし、次の順に進みます。
- Settings
- Developer settings
- Personal access tokens
- Fine-grained tokens
- Generate new token

トークン作成画面では、次の項目を設定します。
- Token name: 用途がわかる名前
- Expiration: 有効期限
- Resource owner: 対象リポジトリの所有者
- Repository access: 必要なリポジトリだけ
- Permissions: 必要最小限の権限
権限の詳細は、GitHub公式ドキュメントを参照してください。
設定が終わったら、Generate token をクリックします。表示されたPATは、画面を閉じると再表示できません。画面を開いたまま次の手順へ進んでください。あとの op plugin init gh で1Passwordへインポートします。
2. 1Password CLIをインストールする
brew install --cask 1password-cli
インストール後にバージョンを確認します。
op --version
1Passwordアプリ側で、CLI連携を有効化します。
- 設定
- 開発者
- 1Password CLI と連携をチェック

3. 1Password Shell Pluginでghを設定する
op plugin init gh
対話画面が順に表示されます。
1つ目の画面: どのcredentialを使うか
gh に渡すPATをどこから持ってくるかを選びます。
- Search in 1Password: 1Passwordに保存済みのitemから選ぶ
- Import into 1Password: 新しくPATを入力して1Passwordに保存する(今回はこちら)
ここで「Import into 1Password」を選び、手順1でコピーしたPATをそのまま貼り付けます。
続いて、item名と保存先のVault(基本private)の入力を求められます。任意で構いませんが、あとから見て分かる名前にしておくと管理しやすいです。
次に、保存したPATをどの範囲で gh の既定にするかを選びます。
- Prompt me for each new terminal session: 新しいターミナルを開くたびに、このPATを使うか確認される。手動で都度承認したい場合に選ぶ
- Use automatically when in this directory or subdirectories: 現在のディレクトリとその配下にいるときだけ自動で使う。リポジトリごとにアカウントを使い分ける場合に向く
- Use as global default on my system: マシン全体の既定として使う。
ghを実行すれば常にこのPATが適用される
普段使いのアカウントが1つなら、global default が手間がなく便利です。
設定が完了すると、最後に次のようなコマンドが表示されるので、表示されたコマンドをコピーし実行します。
例:
echo "source /Users/username/.config/op/plugins.sh" >> ~/.zshrc && source ~/.zshrc
plugins.sh は gh をシェル関数として再定義し、内部で op plugin run -- gh ... を呼びます。これにより、毎回 op plugin run -- を付けなくても、素の gh コマンドで1Password経由のPATを使えます。
4. ghが1Password経由で動くか確認する
op plugin inspect gh
gh auth status
gh repo view
ここで認証が通れば、gh 側はすでに1Password経由で動いています。
5. GitHub remoteをHTTPSにする
PATはHTTPS認証で使われます。SSH形式のremoteのままだとPATは効かないため、HTTPSへ切り替えます。
現状を確認します。
git remote -v
SSH形式の例。
origin git@github.com:OWNER/REPO.git (fetch)
origin git@github.com:OWNER/REPO.git (push)
HTTPSに変更します。
git remote set-url origin https://github.com/OWNER/REPO.git
変更後に確認します。
git remote -v
期待値の例。
origin https://github.com/OWNER/REPO.git (fetch)
origin https://github.com/OWNER/REPO.git (push)
6. Git credential helperを1Password経由に設定する
credential設定を追加します。--replace-all は既存値をすべて消したうえで新しい値に置き換えるオプションです。過去の credential.helper が残っていても、安全に上書きできます。
git config --global --replace-all credential.https://github.com.helper ''
git config --global --add credential.https://github.com.helper '!op plugin run -- gh auth git-credential'
7. Git credential設定を確認する
git config --show-origin --show-scope --get-regexp '^credential\.'
期待値の例。
global file:/Users/yamamoto.akito/.gitconfig credential.https://github.com.helper
global file:/Users/yamamoto.akito/.gitconfig credential.https://github.com.helper !op plugin run -- gh auth git-credential
8. 動作確認する
まずgh側です。
gh auth status
次にgit側です。
git ls-remote origin HEAD
すべて成功すれば、gitとghの両方で1Password内のPATを使えています。
注意点
過去にmacOS KeychainへPATやOAuth認証情報を保存していた場合は、注意が必要です。古い情報が残っていると、新しい設定と競合する場合があります。心当たりがあるときは、先に削除しておくと安心です。
まとめ
今回は、GitHub Fine-grained PATを1Passwordに保管し、git と gh の両方から使う手順を整理しました。
ポイントは次の3つです。
- PATは1Passwordにだけ置く
ghは1Password Shell Plugin経由でPATを受け取るgitのcredential helperからgh auth git-credentialを呼び出してPATを共有する
ローカルに平文のPATを残さずに済むので、トークンの管理コストを大きく下げられます。
なお、今回の手順はリポジトリごとに認証情報を分けない設定です。複数アカウントを使い分けたい場合は、別途設定を追加してください。
本ブログが誰かの参考になれば幸いです。
参考資料
- GitHub Docs - Fine-grained personal access tokensに必要なアクセス許可
- 1Password Developer - Shell Plugins
- 1Password Developer - GitHub CLI Shell Plugin
- Git Documentation - gitcredentials
クラスメソッドオペレーションズ株式会社について
クラスメソッドグループのオペレーション企業です。
運用・保守開発・サポート・情シス・バックオフィスの専門チームが、IT・AIをフル活用した「しくみ」を通じて、お客様の業務代行から課題解決や高付加価値サービスまでを提供するエキスパート集団です。
当社は様々な職種でメンバーを募集しています。
「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、クラスメソッドオペレーションズ株式会社 コーポレートサイト をぜひご覧ください。※2026年1月 アノテーション㈱から社名変更しました







