認証について GitHub
アカウントをセキュリティで保護するには、 GitHub上の特定のリソースにアクセスする前に認証する必要があります。 GitHubに対して認証を行う場合は、自分が正しい人物であることを証明するために、自分に固有の資格情報を指定または確認します。
GitHubでリソースにアクセスするには、ブラウザー、GitHub Desktopまたは別のデスクトップ アプリケーション、API、またはコマンド ラインを使用します。 GitHubにアクセスする各方法では、さまざまな認証モードがサポートされています。
- ID プロバイダー (IdP)
- 2 要素認証を使用したユーザー名とパスワード (またはソーシャル ログイン)、またはパスキー (GitHub Free、 GitHub Enterprise Cloud のみ)
- Personal access token
- SSH キー
ブラウザで認証する
ブラウザーで GitHub を認証するには、さまざまな方法があります。
個人アカウントやサービス アカウントなど、 お使いの GitHub Enterprise Server インスタンスで複数のアカウントを使用する必要がある場合は、毎回再認証する必要なく、アカウントをすばやく切り替えることができます。 詳しくは、「アカウント間の切り替え」をご覧ください。
-
ユーザー名とパスワードのみ
- GitHubでアカウントを作成するときにパスワードを作成します。 パスワードマネージャを使用して、ランダムで一意のパスワードを生成することをお勧めします。 詳細については、 AUTOTITLE を参照してください。
-
2 要素認証 (2FA) (推奨)
-
2 要素認証 (2FA) を有効にした場合、ソーシャル ログインまたはユーザー名とパスワードでサインインした後、モバイル デバイスで時間ベースのワンタイム パスワード (TOTP) アプリケーションからコードを入力するかの残りの部分にアクセスする前に、設定を再構成する必要があります。 詳細については、 2 要素認証を使用したGitHubへのアクセス を参照してください。
-
TOTP アプリケーション必要に応じて、webAuthn を使用して セキュリティ キーを使用して別の認証方法を追加することもできます。 を参照](/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication#configuring-two-factor-authentication-using-a-security-key)してください。
-
-
パスキー
- アカウントにパスキーを追加して、セキュリティで保護されたパスワードレス ログインを実現できます。 パスキーはパスワードと 2FA の両方の要件を満たすので、1 つの手順でサインインを完了できます。 「パスキーの概要」を参照してください。
-
外部認証
- サイト管理者は、ユーザー名とパスワードの代わりに外部認証を使用するように お使いの GitHub Enterprise Server インスタンス を構成できます。 詳細については、 AUTOTITLE を参照してください。
セッションクッキー
GitHub は、Cookie を使用してサービスを提供し、セキュリティを強化します。
- gist.HOSTNAME ドメイン および ベース ドメイン 個別の Cookie を使用します。
- GitHub 通常は、2 週間の非アクティブ状態の後、ユーザー セッションを削除対象としてマークします。
- GitHub では、サインアウト時にセッションがすぐに削除されることはありません。定期的に、 GitHub は期限切れのセッションを自動的に削除します。
GitHub Desktop を用いた認証
ブラウザーを使用して GitHub Desktop で認証できます。 詳しくは、「GitHub Desktop での GitHub への認証」をご覧ください。
API で認証する
さまざまな方法で API を使用して認証できます。 詳しくは、「REST API に対する認証」をご覧ください。
API に personal access token を使用して認証を行う
個人用に GitHub REST API を使用する場合は、 personal access tokenを作成できます。 可能であれば、GitHubはfine-grained personal access tokenではなくpersonal access token (classic)を使用することをお勧めします。 personal access tokenの作成の詳細については、「個人用アクセス トークンを管理する」を参照してください。
アプリを使用した API への認証
組織や他のユーザーに代わって API を使用する場合は、GitHubがGitHub Appを使用することを推奨しています。 詳しくは、「GitHub アプリでの認証について」をご覧ください。
REST API にアクセスするための OAuth app を使用して OAuth トークンを作成することもできます。 ただし、 GitHub では、代わりに GitHub App を使用することをお勧めします。 GitHub Apps を使用すると、アプリが持つアクセスとアクセス許可をより詳細に制御できます。
GitHub Actions ワークフローでの API への認証
GitHub Actions ワークフローで API を使用する場合GitHubは、トークンを作成するのではなく、組み込みのGITHUB_TOKENで認証することをお勧めします。
GITHUB_TOKEN キーを使用して、permissions へのアクセス許可を付与できます。
GITHUB_TOKEN は、ワークフローを含むリポジトリ内のリソースにのみアクセスできることに注意してください。 ワークフロー リポジトリの外部にあるリソースに変更を加える必要がある場合は、 personal access token または GitHub Appを使用する必要があります。
詳しくは、「ワークフローでの認証に GITHUB_TOKEN を使用する」をご覧ください。
コマンドラインで認証する
HTTPS と SSH の 2 つの方法でコマンド ラインから GitHub のリポジトリにアクセスでき、どちらも認証方法が異なります。 認証方法は、リポジトリのクローンを作成するときに HTTPS または SSH リモート URL を選択したかどうかに基づいて決まります。 アクセス方法の詳細については、「リモートリポジトリについて」を参照してください。
HTTPS
ファイアウォールまたはプロキシの背後にある場合でも、HTTPS 経由で GitHub 上のすべてのリポジトリを操作できます。
GitHub CLIで認証する場合は、personal access tokenで認証するか、Web ブラウザーを使用して認証できます。
GitHub CLIを使用した認証の詳細については、gh auth loginを参照してください。
GitHub CLIなしで認証する場合は、IdP に依存する可用性を持つ認証方法を使用できます。
次の表は、インスタンス用に構成された IdP に基づいた使用可能な認証方法を示しています。 IdP によっては、特定の制限が課されたり、パスワード認証の無効化など、特定の機能が有効になる場合があります。 詳細については、「ID 管理とアクセス管理」を参照してください。
| IdP | 使用可能な認証方法 | 詳細 |
|---|---|---|
| SAML | Personal access token | パスワード認証が無効 |
| LDAP | ||
| Personal access token またはユーザー名/パスワード | サイト管理者がパスワード認証を無効にできる | |
| ビルトイン認証 | ||
| Personal access token またはユーザー名/パスワード | パスワード認証を無効にできない |
SSH
SSH 経由で GitHub 上のすべてのリポジトリを操作できますが、ファイアウォールとプロキシでは SSH 接続の許可が拒否される場合があります。
GitHub CLIで認証すると、CLI によってマシン上に SSH 公開キーが見つかると、アップロード用に SSH 公開キーを選択するように求められます。
GitHub CLIアップロード用の SSH 公開キーが見つからない場合は、新しい SSH 公開/秘密キーペアを生成し、お使いの GitHub Enterprise Server インスタンスのアカウントに公開キーをアップロードできます。 その後、 personal access token または Web ブラウザーを使用して認証できます。
GitHub CLIを使用した認証の詳細については、gh auth loginを参照してください。
GitHub CLIなしで認証する場合は、ローカル コンピューターで SSH 公開/秘密キーペアを生成し、お使いの GitHub Enterprise Server インスタンスのアカウントに公開キーを追加する必要があります。 詳しくは、「新しい SSH キーを生成して ssh-agent に追加する」をご覧ください。 Git を使用して GitHub で認証を行うたびに、キーを保存していない限り、SSH キーパスフレーズの入力 を求められます。
GitHubのトークン形式
GitHub は、トークンの種類を示すプレフィックスで始まるトークンを発行します。
メモ
2026 年 4 月 27 日から、 GitHub はステートレス形式 (ghs_APPID_JWT) の段階的なロールアウトを開始し、新しく作成されたすべての GitHub App インストール トークンに対するロールアウトが開始され、API サーフェスのパフォーマンスが向上し、信頼性が向上しました。 アプリケーションがインストール トークンの長さ 40 文字を期待または依存している場合、この新しいトークン形式が正しく処理されない可能性があります。 必要に応じてトークン形式を有効にできる一時的な要求ヘッダーを使用して、アプリとワークフローを検証できるようになりました。 一時ヘッダーの詳細については、GitHubブログを参照してください。
| トークンの種類 | プレフィックス | 詳細 |
|---|---|---|
| Personal access token (classic) | ghp_ | |
| 個人用アクセス トークンを管理する | ||
| Fine-grained personal access token | github_pat_ | |
| 個人用アクセス トークンを管理する | ||
| OAuth アクセス トークン | gho_ | |
| OAuth アプリの承認 | ||
| あるGitHub Appのユーザーアクセス トークン | ghu_ | |
| ユーザーに代わってGitHub アプリで認証する | ||
| GitHub Appのインストール アクセス トークン | ghs_ | |
| GitHub App インストールとしての認証 | ||
| GitHub App のリフレッシュトークン | ghr_ | |
| ユーザー アクセス トークンを更新する |
GitHubトークンの種類とその管理の詳細については、GitHub 資格情報の種類のリファレンス を参照してください。