在服务器上设置Git / Bitbucket:权限问题

时间:2015-05-20 04:55:07

标签: git ssh bitbucket ssh-keys

我知道有很多类似的问题,但经过一个多小时的调试后,我仍然在摸不着头脑。我之前使用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)

这是现在的设置。

  1. Web应用程序文件/目录归apache
  2. 所有
  3. .git目录由root 拥有,也由apache拥有
  4. 我以username登录,主页为/home/username。我有sudo。
  5. 我的密钥位于~/.ssh/id_rsa
  6. 我想要的是能够以username登录并使用此键拉动并推送到回购。如何配置此项以便我或其他用户可以git push/pull而不会弄乱此Web应用程序目录中的文件所有权?

1 个答案:

答案 0 :(得分:1)

不要使用sudossh -Tv git@bitbucket.org使用您当前的用户帐户。 sudo使用/root

或者,如果您必须使用sudo,请确保/root/.ssh包含用于访问bitbucket的公共/私有ssh密钥,sudo ssh会话应该失败。