【解決記録】GitHub 401エラーをSSHで解決した話

この記事には広告を含む場合があります。

記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

今回は、GitHubにgit push できなくなったときの解決方法を記録します。

こんな方に向けて書いています

  • 以前、公開鍵(SSH)でGitHubにログインしたことがある方
  • 今回なぜかHTTPSで認証してしまった方
  • 久しぶりにGitHubを使ってpushしたらエラーが出た方
  • missing or invalid credentials(401) が表示された方

起きたこと

久しぶりにGitHubへpushしようとしました。

すると、次のエラーが表示されました。

missing or invalid credentials
Error: Bad status code: 401

見慣れないエラーに少し焦りました。

原因

色々調べた結果、まず原因を突き止めるために、下記のコードをターミナルで入力しました。

bash
git remote -v

すると、このような結果になりました。

bash
https://github.com/ユーザー名/リポジトリ名.git

以前はSSH(公開鍵)で接続していたはずなのに、今回は HTTPSになっていました。

久しぶりにGitHubを使ったことで、以前SSHで接続していたことを忘れていました。

でも、以前SSHで接続できていたので、HTTP接続からSSH接続に方針転換です。

そういえば、調べながら進めていて、今回だけリモートリポジトリへの接続方法をHTTPSにしてたのでした。

解決手順

①SSH接続確認

下記コードをターミナルに

bash
ssh -T git@github.com

結果は、

bash
Hi ユーザー名! You've successfully authenticated, but GitHub does not provide shell access.

SSHは正常でした。

↓「SSH 接続をテストする」についてのGithub公式ドキュメント

https://docs.github.com/ja/enterprise-cloud@latest/authentication/connecting-to-github-with-ssh/testing-your-ssh-connection

②リモートURLをSSHに戻す

下記コードのユーザー名と、リポジトリ名はご自身のものに変更してください。

bash
git remote set-url origin git@github.com:ユーザー名/リポジトリ名.git

下記コードで確認します。

bash
git remote -v

結果はこうなりました。

bssh
git@github.com:ユーザー名/リポジトリ名.git

③ 再度push

bash
git push origin main

Github上で確認し、無事pushに成功しました!

学び

  • 久しぶりにGitHubを使うと設定を忘れていることがある
  • 以前SSHを使っていたなら、SSHに戻すのが早い
  • まず git remote -v を確認

エラーが出たときは焦らず、まず git remote -v で接続方式を確認することが大切だと学びました。

同じエラーで困っている方の参考になれば嬉しいです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA



reCaptcha の認証期間が終了しました。ページを再読み込みしてください。