1. ホーム
  2. Qt

CentOSでgitを使用する際の問題を解決する:error: cannot open .git/FETCH_HEAD: Permission denied

2022-02-21 21:16:06

  最近、CentOSでノードサーバをデプロイする際に問題に遭遇し、githubからプロジェクトをプッシュまたはプルする際にエラーが発生することがわかりました。SSHキーを生成し、公開キーをgithubにコピーしましたが、git pull originコマンドを使用すると、常に以下のエラーが発生します。

error: cannot open .git/FETCH_HEAD: Permission denied

  最初はsudoを追加すれば問題ないと思っていたのですが、sudoを追加すると別のエラーが報告されることがわかりました。

Permission denied (publickey).
fatal: Could not read from remote repository.

  Googleで試した結果、ようやく問題が見つかりました。アドレスは  スタックオーバーフロー . 最高得点のabyxの回答がまさにこの問題のキーポイントです。

  答えは次のような効果です。

The first method does not work because the current user does not have permission to modify the directory, and the second method does not work because the SSH key of the root user is used instead of the SSH key of the current user after sudo is added.

  原因は、CentOSに非rootユーザーでログインし、SSH鍵を生成するコマンドにsudoを付けなかったため、生成されたSSH鍵が現在のユーザーのものになっているためです。しかし、カレントユーザーにはディレクトリを変更する権限がないため、pullはPermission deniedとなります。

  解決策としては、カレントディレクトリのパーミッションを変更するか、カレントディレクトリの所属ユーザーを変更することです。

  私は、ディレクトリを所有するユーザーを現在のログインユーザーに変更することで、これを行いました。

 sudo chown your_user_name: your_folder_name -R

  -Rは再帰的という意味です。