sh1’s diary

プログラミング、読んだ本、資格試験、ゲームとか私を記録するところ

git push エラー「remote: Repository not found」の対応と ssh の設定

github に作成済のリポジトリーにデータを push しようとすると、エラーが出てしまった。

remote: Repository not found.
fatal: repository 'https://github.com/sh1ch/SimpleCSVParser.git/' not found

実行したコマンドは以下で、最後の push で上のエラーになってしまう。(なんで最初の add でエラーにならないのだろう?):

git remote add origin https://github.com/sh1ch/SimpleCSVParser
...
git push origin master

⚠️:git のリポジトリーの指定に間違いがないかどうかは、もう一度再確認してから進むこと!

解決方法の例

つぎのコマンドで、コンフィグの状態を確認します。

git config --list

調べてみると remote.origin.urlhttps になっていました。これだと、環境等によって稀にエラーになることがあるようです(いくつか同じような症状をメモしている記事がありました)ただ、詳しいエラーの原因まではわかりませんでした。(エラー詳細から原因を特定できないのはモヤっとしますが)

...
remote.origin.url=https://github.com/sh1ch/SimpleCSVParser.git

この対処方法の例として挙がっているのは https ではなく、セキュリティに優れる ssh を利用して push すること。PC に ssh を利用するための公開鍵/秘密鍵の準備がないときは、コマンドプロンプトで以下を実行します。

ssh を利用するための設定

念のため、ssh を利用するための鍵の作り方も記述します。

このあたりは、基本情報を勉強してると下地の理解があるはず。なんだかんだで知識の(厚底ではないけど)下駄を広く履けると思います。

以下のコマンドを実行します。

ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\***/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\***/.ssh/id_rsa
Your public key has been saved in C:\Users\***/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:**********#user-name#@#pc-name#
The key's randomart image is:
+---[RSA 3072]----+
|   .  . . ..  +..|
|                 |
|                 |
|                 |
|   .  . . ..  +..|
|                 |
|                 |
|                 |
+----[SHA256]-----+

C:\Users\***/.ssh/ フォルダが作成されて、その中に4つファイルが作成・保存されます。

id_rsa.pub ファイルの内容が、公開鍵を表しているので、記載されているテキストを github に登録します。

URL: https://github.com/settings/keys

SSH Keys の「New SSH Key」を選択し、鍵の名前は利用者が判断できるくらいの名前にしておく。Key の中身は、コピペしたらいい。(ssh-rsa から始まるテキストのすべてを登録する)

登録ができたら、ただしく登録できているのか確認をしておく。

ssh -T git@github.com

自分の環境だと、つぎのようなテキストが出力されます。

Hi #username#! You've successfully authenticated, but GitHub does not provide shell access.

remote set-url を更新します。

git remote set-url origin git@github.com:sh1ch/SimpleCSVParser.git

git@... 以下の部分は、github<>code ボタンからテキストをコピーすることができます。入力ミスすると馬鹿らしいのでコピー推奨。

最後にコンフィグの状態を確認して remote.origin.url= の内容が上に更新されているかどうか調べておくこと。

git config --list

ssh に関するテクニックは、github に限ったものではないので注意。

再度コマンドを実行

この状態で再度コマンドを実行します。リポジトリーを指定するテキストが ssh に変更されている点に注意。

git remote add origin git@github.com:sh1ch/SimpleCSVParser.git
...
git push origin master

ちなみに、public key の登録がなければ ssh による操作は、おそらく次のようなエラーがでます。

git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

参考