昨夜作業中に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日にパスワード認証が廃止されたそうです。
日を跨いで作業していたのでかなりタイムリーなエラーでした。
#####参考記事
https://qiita.com/shiro01/items/e886aa1e4beb404f9038
##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回目以降は求められませんでしたが、設定の先にトークンの期限を選択できますので期限が過ぎるをまた作り直すことになりそうです。
##パスワード認証が廃止された経緯について
https://gigazine.net/news/20201219-github-token-git-operations/
##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.