リモートサーバーでGitリポジトリをcloneして使用している際に、特定のリポジトリでのみgit pull コマンドが失敗するという問題に直面。
SSHの公開鍵などの設定をGitHubなどで設定していない方は、他の方の記事を読んでください。

概要

リモートサーバーにVSCodeでSSH接続をし、プルを実行すると、以下のエラーメッセージが表示される。

Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.

原因の特定

SSHキーの設定

SSHキーは正しく生成され、ssh-agent に追加されていることを確認済。
ターミナルでSSH接続のテストを実行し、問題なく接続できることも確認済。

$ ssh -T git@github.com
Enter passphrase for key '/home/xxx/.ssh/id_rsa':
Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.

GitのリモートURLの確認

リモートリポジトリのURLを、VSCodeでプルできるプロジェクトと比較してみる

// Permission denied と出るプロジェクト
$ git config --list
remote.origin.url=git@github.com:xxx/xxxx.git

// プル・プッシュができるプロジェクト
remote.origin.url=https://github.com/xxx/xxxx.git

解決策

そんな訳無いだろうと思いながら、リモートリポジトリのURLをSSHプロトコルからHTTPSプロトコルに変更。

git remote set-url origin https://github.com/xxx/xxxx.git

→ エラーなくプル・プッシュが可能。

特定のGitリポジトリでの git pull エラーは、SSHプロトコルからHTTPSプロトコルに変更することで解決しました。同様の問題に直面している方は、上記の手順を試してみてください。

投稿者 mitulu

コメントを残す

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

CAPTCHA