個人開発・業務・OSS活動などで複数のGitHubアカウントを使い分けたい。
マルチアカウント認証の構築
まずは、gh auth loginで各GitHubアカウントを認証する。アカウントごとにこのコマンドを実行し、CLI内部に複数の認証情報を登録。OAuth認証を利用するため、セキュリティも高い。一度認証すれば、毎回ログインし直す必要はない。
アクティブアカウントの切り替え
用途やプロジェクトごとにアカウントを切り替える場合、gh auth switchが役立つ。このコマンドでアクティブなアカウントを即座に変更できるため、コミットやプルリクエスト時の誤用を防げる。現在のアクティブアカウントはgh auth statusで確認可能。
アカウント情報の整理と削除
不要になったアカウントの認証情報は、gh auth logoutで削除できる。定期的なクリーンアップでセキュリティリスクを下げ、管理もシンプルに保てる。複数アカウントを扱うなら、不要な認証情報を残さない運用が重要。
プロジェクト単位でのアカウント分離
プロジェクトごとにアカウント設定を自動で切り替えたい場合、GH_CONFIG_DIR環境変数を活用する。さらにdirenvと組み合わせれば、ディレクトリごとの設定切り替えも自動化できる。プロジェクト移動と同時にアカウント設定も切り替わる快適な運用が実現する。
SSHキー・git設定との連携
CLI認証だけでなく、git操作時のユーザー設定やSSHキー管理も重要。各アカウントごとにSSHキーを用意し、~/.ssh/configでホストごとに切り替えることで、push/pull時のアカウント混同を防げる。.gitconfigのincludeIfを使えば、ディレクトリ単位でユーザー情報を自動的に切り替えられる。
効率的なアカウント運用のために
ghコマンド2.40.0以降ではマルチアカウント対応が強化されている。gh auth login、gh auth switch、gh auth statusを組み合わせて、アカウント管理のワークフローを効率化できる。環境変数やdirenv、SSH、gitの設定と連携することで、現場のニーズに合わせた柔軟なアカウント運用が可能。
まとめ
複数アカウント運用の煩雑さは、ghコマンドの活用で大幅に軽減できる。認証、切り替え、クリーンアップ、自動化を組み合わせ、プロフェッショナルなGitHubアカウント管理を実現しよう。
よいGitHubライフを。