Gitlabで2段階認証を設定後にレポジトリにアクセスできなくなった時の対応
公開日: 2020.5.18
Gitlabで2段階認証を設定後にレポジトリにアクセスできなくなった時の対応をまとめました。2段階認証を入れるとプライベートレポジトリにこれまで通りにログインができなくなります。
Gitlabで2段階認証を設定すると、プライベートレポジトリへのアクセス制限がかかる
Gitlabのプライベート・レポジトリをHTTP経由で操作しようとすると、2段階認証前にあったログインプロンプトが表示されず、not foundが返ってきてしまいます。
git pull origin master
remote: The project you were looking for could not be found.
fatal: repository 'https://gitlab.com/ユーザー名/レポジトリ.git/' not found
これは、レポジトリパスにbasic認証を入れても同じです。
git push origin master
remote: HTTP Basic: Access denied
remote: You must use a personal access token with 'read_repository' or 'write_repository' scope for Git over HTTP.
remote: You can generate one at https://gitlab.com/profile/personal_access_tokens
fatal: Authentication failed for 'https://gitlab.com/ユーザー名/レポジトリ.git/'
冷静になって考えれば、これまで通りにログイン・パスワードでレポジトリを操作できたら「1段階認証」な訳で、この挙動は当たり前ということですね。
2段階認証を設定時のレポジトリの操作には「access token」が必要
先ほどの、basic認証URLを使った時のエラーログにも書いてありますが、 Gitlabで2段階認証を設定している場合は、レポジトリへのアクセスに「access token」が必要になります。
access tokenは、設定が画面から発行ができます。
付与する権限は、
- read_repository
- write_repository
の二つがあれば、最低限レポジトリへの読み書きができます。
リモートレポジトリを登録する際の設定方法
access tokenを発行したら、レポジトリのリモート設定を変更します。
access tokenを使う際のリモートURLは、
https://oauth2:発行したトークン@gitlab.com/ユーザー名/レポジトリ.git
となるので、コマンドラインから
git remote set-url origin https://oauth2:発行したトークン@gitlab.com/ユーザー名/レポジトリ.git
すればOKです。git submoduleについても同様です。
access tokenはアカウント全体に適用されるので、レポジトリごとにtokenを発行しないで共通のもので使いまわすことができます。
Gitlabで2段階認証を設定後にレポジトリにアクセスできなくなった時の対応を見てきました。
セキュリティを考えれば2段階認証は必須にする方が良いので、この機会にぜひ設定して大事なデータをしっかりと保護してみてください。
価格は記載がある場合を除き、すべて税込みです。
関連キーワード
サーバレスの新着記事
- サーバレスCloudflare R2の料金体系・無料枠まとめ 2024.8.21
- サーバレスCloudflare R2をCyberduckで使う方法 2024.7.31
- サーバレスAIの学習ボット・クローラーからサイトを守るメリットとブロックする方法 2024.7.19
- サーバレスCloudFlare Pagesのビルド環境の違い 2024.5.9
- サーバレスCloudflare D1の料金体系・無料枠まとめ 2024.3.25
- サーバレスCloudflare PagesでNuxt3のビルド時に「ENOENT: no such file or directory」エラーの対象方法 2024.3.21
- サーバレスGitlab CLIでpush時に「glab auth not found」となった際の対処方法 2024.3.19
- サーバレスCloudFlare Workers AIの料金体系・無料枠まとめ 2024.2.2