Githubにパスワード認証で接続できなくなったのでSSHに切り替えた

アプリ・サービス

背景

2021/08/19 :久しぶりにいつも通りリポジトリからpullしようとしたら以下のメッセージが表示された。

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/

どうやら2021/08/13からパスワードベースでの認証ができなくなったらしい。。確かに筆者の環境では、以下のようにリポジトリurlを https://〜で書いている。

...
url = https://github.com/{name}/{repository_name}.git
...

おこなった対応

今回の対応では、パスワード認証がサポートされなくなったので、鍵を使ったSSHベースでの認証に切り替える。とりあえず詳しい説明は今後追記しますが、おこなった手順を記載します。

追記)HTTPSベースのままで使いたい場合は個人アクセストークンをGithubの管理画面から発行すれば良いようです。イメージとしては、今までパスワードを入力していた代わりにトークンを入力するような使い方です。参考

鍵(キーペア)の生成


mkdir -p ~/.ssh
cd ~/.ssh
ssh-keygen -t rsa -b 2048 -C "xxx@gmail.com"

  • ssh-keygen で設定するメールアドレスは githubで登録したメールアドレスと同じものにしました。
  • ssh-keygen を実行した際に訊かれるキーペアの名前(デフォルトはid_rsa)は分かりやすく、「name_github」としました。

公開鍵の登録

上記手順が完了すると、~/.ssh に鍵ファイルが作成されているかと思います。筆者の場合は、「name_github」、「name_github.pub」が生成されていました。前者が秘密鍵、後者が公開鍵です。Githubの自身のアカウントにこちらの公開鍵を登録します。

https://github.com/settings/keys

上記ページから New SSH Key を押下して、公開鍵を登録しましょう。やり方は公開鍵のファイルをテキストエディタ等で開いて、内容をコピー&ペーストします。

設定ファイルの接続方式を https -> SSH に切り替える

最後に、リポジトリに存在している .git/config という設定ファイルに記載の url をssh に切り替えます。これをやらないと、https で繋ぎにいくため鍵を登録したにも関わらず同じエラーが出力されます。

...
url = https://github.com/{name}/{repository_name}.git
...

↓ 以下のように書き換え

url = git@github.com:{name}/{repository_name}.git

※url = に設定するURLの文字列は自身のリポジトリの「Clone」の部分から確認できます。

これ

まとめ

以上の手順で無事に git pull がいつも通りできるようになりました!色々はしょって分かりづらいかもですが、同じ問題あたった人の参考になればと思います。

コメント

タイトルとURLをコピーしました