SSH接続でブランチをプッシュしようとしたところこのようなエラーが発生しました.
The requested repository either does not exist or you do not have access.
If you believe this repository exists and you have access,make sure you're authenticated.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
ちゃんと存在するリポジトリだったので不可解なエラーでした.
今回はSSH接続でブランチをプッシュするときに発生するエラーの解決方法について説明します.
背景
- コード管理:Bitbucket
- OS:Windows 11 バージョン 22H2
- 接続方法:SSH
初めて使うリポジトリにブランチをプッシュしようとしたところ,このエラーに出会いました.
初めはSSH接続ができていないことを疑いました.
結論
gitでPlease make sure you have the correct access rights and the repository exists. が出た時の対処法
結論から書くと、sshの公開鍵,秘密鍵を再発行してgithubに登録して、configファイルにも記載して、エラーが解決したのでその方法を書きます。
こちらの記事ではSSHを再発行する手順でエラーを解決できたと紹介してありました.
私も同じようにSSHを再発行しましたが一向にエラー解決には至りませんでした.
原因:リポジトリへの権限不足
The requested repository either does not exist or you do not have access.
If you believe this repository exists and you have access,make sure you're authenticated.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
リポジトリへの書き込み権限がないことが原因でした.
よく見るとyou do not have access
と書いてありましたね.
私も知らなかったのですがリポジトリごとにアクセス権を設定できるそうです.
アクセス権のうち読み取り権限しかない場合はクローンやファイルの閲覧はできてもブランチの作成やプッシュはできません.
管理 | ユーザーは、リポジトリ内ですべての作業 (リポジトリ設定の変更、ユーザー権限の更新、およびリポジトリの削除) を実行できます。 |
書き込み | ユーザーは、リポジトリに変更を直接プッシュできます。 |
読み取り | ユーザーは、リポジトリ コードの表示、クローン、フォークはできますが、変更をプッシュすることはできません。読み取りアクセス権が付与されている場合、ユーザーは、課題の作成、課題へのコメント、および Wiki ページの編集も行えます。 |
ブランチが作成できないことはブラウザからも確認できました.
作成ボタンがグレーがかり押せないようになってますね.
このようなエラーが出ていると確実にアクセス権が足りていないので管理者に連絡して書き込み権限をもらいましょう.
権限を変更すると無事にブランチがプッシュできました.
$ git push origin branch name
Enter passphrase for key '/home/xxxx/.ssh/id_rsa':
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 16 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 1.98 KiB | 1.98 MiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
remote:
remote: Create pull request for branch name:
remote: repository name
remote:
To bitbucket.org:repository name
* [new branch] branch name -> branch name
まとめ
今回はブランチをプッシュするときに発生したエラーの解決方法を紹介しました.
このようなエラーは基本的にSSH接続周りが怪しいと考えるのでアクセス権は盲点でした.
私の場合はタイミングも悪くてMacからWindowsに変えるときとリポジトリにプッシュしようとしたときが一緒だったので余計にSSH接続が問題だと思ってしまいました.
$ ssh -T git@bitbucket.org
authenticated via ssh key.
You can use git to connect to Bitbucket. Shell access is disabled
bitbucketであれば ssh -T git@bitbucket.org
を実行して connect to Bitbucket
と表示されていればSSH接続できているので別の原因を疑ってもいいかもしれませんね.