こんにちは、現役エンジニアの inno_tech です。
GitHubを利用するため、新たにSSHキーを生成しGithubに接続しようとしたところエラーが発生しました。
ちなみにGitHubにSSH接続するための設定方法はこちらの記事にまとめています。
本記事はUbuntu 20.04LTS上で動作確認しています。
エラー内容
git clone
時に以下のようなエラーが発生しました。(Error:Repository not found. fatal: Could not read from remote repository.
)
git clone git@github.com:[username]/[repository_name].git
Cloning into '[repository_name]'...
Warning: Permanently added the ECDSA host key for IP address '52.69.186.44' to the list of known hosts.
ERROR: Repository not found.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
まずは以下のポイントについて、問題ないことを確認しておきましょう。
- リポジトリのURLは正しい
- リポジトリへの権限(読取/書込)はある
- GitHub上に登録するSSHキーも正しい
同じ手順で以前も設定したことあるのに何でエラーなんや、、、
原因調査
git cloneに失敗したので、sshでgithubにログインを試してみます。すると、ログインしようとしているアカウントが違うことが判明しました。
ssh git@github.com
# 応答結果
PTY allocation request failed on channel 0
Hi [意図しないアカウント]! You've successfully authenticated, but GitHub does not provide shell access.
実は今回のエラーは、GitHubアカウントを新たに再作成し、そのアカウントの設定作業中に遭遇しました。
つまりエラーの原因は、古いアカウントと新アカウントの2つのSSHキーがPC上に登録され、GitHubへのログインは古いユーザーアカウントが使用されていたことでした。
新しく登録した方が優先されるわけではないのね。
対処方法
今回は古いアカウントは使用予定がないので削除し、新しいアカウントを使用するように設定します。(複数のGitHubアカウントを切り替える手もあるようですが本記事では扱いません。)
ssh-agentからSSHキーを削除
まずは古いアカウントのSSHキーをssh-agentから削除します。
# 登録された鍵(finger print)を確認するコマンド
ssh-add -l
256 SHA256:[鍵のデータ] [鍵ファイルpath または キーコメント] ([暗号化アルゴリズム:RSA等])
# -dオプション [鍵ファイルへのパス] で削除
ssh-add -d ~/.ssh/path_key
# 削除できたか確認
ssh-add -l
known_hostsからフィンガープリント情報を削除
~/.ssh/known_hosts
に、古いGitHubアカウントで接続したときのフィンガープリント情報が残っているので削除します。
# nanoエディタで、それっぽい行を削除する
nano ~/.ssh/known_hosts
~~編集~~
# もしくは以下のコマンドでも自動削除できる
ssh-keygen -R github.com
以上で古いアカウント情報は削除できました。新しいアカウントで再接続すれば上手くいくはずです。
まとめ
今回のまとめです。
- GitHubにアクセスできない場合、正しいGitHubアカウントでログインがなされているかを確認
- 一度GitHubと接続するとknown_hostsファイルに接続情報が残り、意図しないアカウントが使用される可能性がある
発売2ヶ月で15万部を突破した評判の書籍はこちら。数値化を意識することでボヤっとしていた仕事が具体的に捉えられるようになり、もっと前に進めるようになりますね。
参考になったでしょうか。
ほかにも役立つ情報が他のページにもあるかもしれません。
ご覧になるかはあなた次第です!
この記事がイイねと思ったら、Twitterフォロー か にほんブログ村のどちらかしてくれたら嬉しいよ!
コメント / ご要望