我知道有很多类似的问题,但经过一个多小时的调试后,我仍然在摸不着头脑。我之前使用HTTPS设置了Git,但我现在想要使用SSH。但是,当我git pull origin master
时,我得到了
error: git checkout-index: unable to create file test.txt (Permission denied)
我相信它是因为文件归apache
所有,我需要为Git配置一些内容来写入apache拥有的文件。
以下是一些信息。 ssh -Tv git@bitbucket.org
给出:
logged in as my_bitbucket_username.
ll ~/.ssh/
给出:
drwxrwxr-x 2 username 4.0K May 20 00:18 ./
drwxr-xr-x 3 username 4.0K May 19 23:41 ../
-rw-r--r-- 1 username 410 May 18 18:13 authorized_keys
-rw------- 1 username 51 May 20 00:19 config
-rw------- 1 username 132 May 19 23:54 environment
-rw------- 1 username 1.8K May 20 00:18 id_rsa
-rw-r--r-- 1 username 414 May 20 00:18 id_rsa.pub
-rw-r--r-- 1 username 410 May 19 23:45 known_hosts
sudo .git/config
给出:
[remote "origin"]
url = git@bitbucket.org:bitbucket_user/myrepo.git
fetch = +refs/heads/*:refs/remotes/origin/*
ssh-add -l
给出:
2048 ... /home/username/.ssh/id_rsa (RSA)
这是现在的设置。
apache
.git
目录由root 拥有,也由apache拥有username
登录,主页为/home/username
。我有sudo。~/.ssh/id_rsa
我想要的是能够以username
登录并使用此键拉动并推送到回购。如何配置此项以便我或其他用户可以git push/pull
而不会弄乱此Web应用程序目录中的文件所有权?
答案 0 :(得分:1)
不要使用sudo
:ssh -Tv git@bitbucket.org
使用您当前的用户帐户。 sudo
使用/root
。
或者,如果您必须使用sudo
,请确保/root/.ssh
包含用于访问bitbucket的公共/私有ssh密钥,sudo ssh会话应该失败。