1. 程式人生 > >解決Ubuntu中使用git碰到的問題:error: cannot open .git/FETCH_HEAD: Permission denied

解決Ubuntu中使用git碰到的問題:error: cannot open .git/FETCH_HEAD: Permission denied

我在Ubuntu中部署伺服器時,碰到了一個問題,發現我從碼雲 fetch專案時都會報錯。明明已經生成了SSH keys,並把public key複製到了github上了,使用命令git pull origin始終都會報以下錯誤:

git fetch origin master
error: cannot open .git/FETCH_HEAD: Permission denied

 

 一開始以為加個sudo就好了,但是發現加了sudo會報另一個錯誤:

sudo  git fetch origin master
[sudo] password for wunian: 
[email protected]
: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.

 

前一種方法行不通是應為當前使用者沒有修改目錄的許可權,後一種方法行不通的原因是加了sudo後,使用的是root使用者的SSH key而不是當前使用者的SSH key.因為我登入Ubuntu時的使用者不是root使用者,而且我沒有在生成SSH key的命令前加sudo,所以,生成的SSH key是屬於當前使用者的。但是當前使用者不具有修改目錄的許可權,所以pull的時候會Permission denied。

解決方法就是修改當前目錄的許可權,或修改當前目錄的所屬使用者。

我的做法是修改該目錄的所屬使用者為當前的登入使用者:

 

 sudo chown your_user_name: your_folder_name -R

 

在部署完專案後再執行命令:

 sudo chown -R www-data:www-data your_folders