216
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

GitHubでhttpsのパスワード認証が廃止された。Please use a personal access token instead.

昨夜作業中にgit pushしたところ見慣れ無いエラーが発生しました。

$ git push origin branch名
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
fatal: unable to access 'https://github.com/名前/リポジトリ.git/': The requested URL returned error: 403

Please use a personal access token instead.
訳: 代わりにパーソナルアクセストークンを使用してください。

調べてみたところGitHubで2021年8月13日にパスワード認証が廃止されたそうです。
日を跨いで作業していたのでかなりタイムリーなエラーでした。

参考記事

1.キーチェーンアクセスの削除 とosxkeychainの関係

osxkeychainとは?

ここにパスワードを格納しておけばhttps接続の場合毎回パスワードを入力する手間を省けます。
更にキーチェーンにも格納されるので便利。

osxkeychainはこちらで確認できます。

$ git config --list

mac本体の検索からキーチェーンアクセスを開き、github.comを見つけ出します。
github.comのアクセス権限を削除し保存します。

キーチェーンアクセスは、パスワードやアカウント情報を保管するmacOSアプリケーションです。このアプリケーションを使用することで、記憶および管理する必要のあるパスワードの数を減らすことができます。

2.個人アクセストークンを作成、使用する

こちらは公式のものを参照してください
https://docs.github.com/ja/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token
トークンのコピーはページを離れると参照不可になリますのでご注意ください。

3.git pushする

この際にパスワードとして先ほどコピーしたトークンを使います。
2回目以降は求められませんでしたが、設定の先にトークンの期限を選択できますので期限が過ぎるをまた作り直すことになりそうです。

パスワード認証が廃止された経緯について

SSH接続の手順

ssh接続なら今回の変更の影響を受けないので備忘録として残します。

鍵を入れるフォルダに移動

$cd ~/.ssh

こちらは隠しファイルになるので確認の際は$ls -laする

$ ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/satoshun/.ssh/id_rsa): 
/Users/satoshun/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 

ここで名前を設定することができます。

公開鍵のgithubへの登録

鍵の中身のクリップボードへのコピーは
$ pbcopy < ~/.ssh/id_rsa.pub

鍵を作るときに名前を設定しない場合、id_rsaとなるがこちらがデフォルトで
id_rsaを見に行くようになっている。

$ vim ~/.ssh/config
Host github
  HostName github.com
  IdentityFile ~/.ssh/id_rsa 鍵名
  User git

接続のチェック

$ ssh -T git@github.com

Hi (名前)! You've successfully authenticated, but GitHub does not provide shell access.

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
216
Help us understand the problem. What are the problem?