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段階認証は必須にする方が良いので、この機会にぜひ設定して大事なデータをしっかりと保護してみてください。
価格は記載がある場合を除き、すべて税込みです。
関連キーワード
サーバレスの新着記事
サーバレス複数サイト運営をする際の無料サーバー使いこなし術 2022.9.5
サーバレスHerokuの無料プランが終了へ。移行するならどこがいい? 2022.8.26
サーバレスCloudflare Pages Functionsをローカルでテストする方法 2022.8.12
サーバレスCloudfalre Pagesでリダイレクトを使う方法 2022.8.11
サーバレスCloudflare WorkersとCloudflare Pages Functionの違いと使い分け 2022.8.10
サーバレスCloudinaryの自分のデータを自動でバックアップさせる方法 2022.8.1
サーバレスいまさら聞けないレンタルサーバーとHerokuの違い 2022.5.10
サーバレスCloudflare Pagesでアクセス制限を実装する 2022.4.26