LoginSignup
3
3

More than 1 year has passed since last update.

パスワードでのGit操作を禁止 トークン認証手順

Posted at

■背景

いつも通りに、git操作を行っていると、突然push時に、下記エラーが出力されました。
clone,pullなどもできない!!?

remote: Password authentication is temporarily disabled as part of a brownout. Please use a personal access token instead.
remote: Please see https://github.blog/2020-07-30-token-authentication-requirements-for-api-and-git-operations/ for more information.
fatal: unable to access 'https://github.com/repository.git/': The requested URL returned error: 403

そのため、調査してみました。

GitHub、2021年8月13日以降パスワードでのGit操作を禁止

(https://news.mynavi.jp/article/20201222-1604003/)
の記事を発見しました。

■原因

これまでローカルでリモート(github)にアクセスするためにはパスワード認証で問題ありませんでした。
しかし、脆弱性防止のために個人アクセストークン認証に変更になるみたいです。(2021年8月13日にパスワード認証廃止)

さらに、詳細を確認すると、

下記の期間は一時的にパスワード認証が停止され、パスワードを使ったGit操作ができなくなる。
エラーが出たのは2021年7月28日18時頃だったので、下記が原因かと思います。

  • 2021年6月30日 UTC 7時から10時(日本時間 同16時から19時)
  • 2021年6月30日 UTC 16時から19時(日本時間 7月1日1時から4時)
  • 2021年7月28日 UTC 7時から10時(日本時間 同16時から19時)
  • 2021年7月28日 UTC 16時から19時(日本時間 7月19日1時から4時)

■パスワード認証からトークン認証に変更

2021年8月13日以降パスワードでのGit操作を禁止になるため、早々にトークン認証に切り替えたので、方法を記載します。

1. キーチェーンアクセスを開き、gitを検索し、インターネットパスワードを削除します。

image.png

スクリーンショット 2021-07-28 23.57.59.png

2.トークンの生成を行う。

githubにログインし、setting→Developer Setting→Personal access tokens→Generate New Token
をクリックし、Note(タイトル)、Expiration、repoにチェックを入れてトークンを生成します。
※トークンが表示されるので、保管しておきましょう。
スクリーンショット 2021-07-29 0.18.20.png

3. トークン認証を設定する

下記、でトークンを設定しましょう。

■パターン1

git remote set-url origin https://{トークン名}@github.com/{リポジトリ名}.git

 リポジトリ名などを間違えてしまうと、下記のようにエラーが出力されます。

remote: Not Found
fatal: repository 'https://github.com/リポジトリ名.git/' not found

トークン認証を設定後、下記、コマンドでリモートのリポジトリと一致しているか確認してみましょう。

git remote -v

■パターン2

上記は、直接トークンを設定しています。毎回パスワードを求められずに操作できるので便利ですが、セキュリティ的に問題がある場合があります。
なので、
トークンを設定せずに、毎回入力を求められるように設定します。

vim .git/config

まず、gitの設定ファイルをvimモードで開きます。
そして、下記の urlをユーザー名のみに設定します。

[remote "origin"]
        url = https://ユーザー名@github.com/リポジトリ名.git
        fetch = +refs/heads/*:refs/remotes/origin/*

すると、
リモート操作時は、パスワードが求められるので、トークンを入力しましょう。

■最後に

既に、パスワード認証中にgit cloneしてきたものは、上記の手順でgit操作が可能になりますが、
トークン認証後にgit cloneしてきたものは、上記の設定は不要になります。

以上、最後まで閲覧頂きありがとうございます。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3