Gitを使って開発を進めていると、時に思いもよらないエラーに出くわすことがあります。その中でも特に混乱を招きやすいのが、以下のようなエラーメッセージではないでしょうか。
unable to access 'https://github.com/ユーザー名/リポジトリ名.git/': The requested URL returned error: 403
この「403」というエラーコード、実は 「アクセスが拒否された」 ことを意味しています。
一見すると、「自分の操作に問題があるのか?」「GitHubが壊れているのか?」と戸惑ってしまう方も多いかもしれません。
本記事では、この403エラーがなぜ発生するのか、どのように対処すればよいのかを、原因別にわかりやすく解説いたします。
特に「個人アクセストークン(PAT)」や「SSH認証」など、最近のGitHubで求められるセキュリティ対策についても触れますので、ぜひ参考になさってください。
開発をスムーズに進めるためにも、正しい理解と確実な対処法を身につけていきましょう。
403エラーとは
「403 Forbidden」は、リクエスト自体は受け取ったが、アクセスを許可できない という意味のコードです。
つまり、GitHubのサーバーはあなたのリクエストを認識していますが、「そのリポジトリにアクセスする権限がありません」と拒否しているのです。
このエラーが発生する原因としては、主に以下のようなケースが考えられます。
これらの点を一つずつ確認・対処していくことで、403エラーは解消できる可能性が高いです。
原因別のチェックリストと対処法
403エラーの主な原因は、大きく分けて3つに分類できます。
それぞれのチェックポイントと、具体的な対処法を順に見ていきましょう。
原因1:HTTPS経由の認証情報が不正・古い
チェックポイント
GitHubは2021年8月より、HTTPS経由でのパスワードによる認証を廃止しました。
代わりに「個人アクセストークン(PAT: Personal Access Token)」の使用が必須となっています。
対処法
- GitHubの設定ページから新しい個人アクセストークンを作成する
(スコープは最低限「repo」にチェックを入れましょう) git
コマンドで認証を求められたら、ユーザー名は通常どおり、パスワードの代わりにトークンを入力- 過去の認証情報がキャッシュされている場合は、以下のコマンドで削除できます
# 認証情報をクリア(macOS/Linux)
git credential reject https://github.com
# Windowsの場合(Git Credential Manager使用時)
git credential-manager reject https://github.com
原因2:リポジトリがPrivateで、自分にアクセス権がない
チェックポイント
GitHubでは、Private(非公開)リポジトリに対しては、アクセス権限を持つユーザーのみが操作できます。
たとえURLが正しくても、閲覧権限がなければ403で拒否されてしまいます。
対処法
- リポジトリの所有者に連絡し、自分のGitHubアカウントにアクセス権を付与してもらう
- 共有目的であれば、リポジトリをPublicに変更してもらう(状況に応じて)
原因3:2段階認証(2FA)が有効で、認証方法が不適切
チェックポイント
2段階認証を有効にしている場合、従来のパスワード認証は無効となります。
HTTPS接続時には、トークンを用いた認証が必須となります。
対処法
- 原因1と同様、個人アクセストークンを使う
- あるいは、HTTPSではなくSSH接続に切り替える(後述)
HTTPSからSSHに切り替えて解決
403エラーがHTTPS認証の問題に起因している場合、SSH接続に切り替えることで問題が解消されることがあります。
SSH方式は、事前に鍵認証の設定を行っておけば、以後はパスワードやトークンの入力を求められず、スムーズにGit操作ができる利点があります。
SSHの設定手順については、こちらの記事で解説をしています。
まとめ
Gitは非常に便利なツールですが、セキュリティ強化が進むにつれ、認証周りの仕様も日々変化しています。
エラーが出た際は慌てず、「なぜ今この認証方法が拒否されたのか?」という観点で原因を探ることが解決の近道になります。
今回の内容が、同じエラーでお困りの方のお役に立てば幸いです。
これからも安全かつ快適にGitHubを活用していきましょう。
コメント