2015-05-20 3 views
1

Я знаю, что есть много подобных вопросов, но я все еще царапаю голову после более чем часа отладки. Ранее я использовал Git, используя HTTPS, но сейчас я бы хотел использовать SSH. Однако, когда я git pull origin master, я получаюНастройка Git/Bitbucket на сервере: проблемы с разрешением

error: git checkout-index: unable to create file test.txt (Permission denied) 

Я считаю, что это потому, что файлы принадлежат apache и мне нужно настроить что-то для Git для записи файлов, находящихся в собственности апача.

Вот некоторая информация. ssh -Tv [email protected] дает:

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 = [email protected]:bitbucket_user/myrepo.git 
    fetch = +refs/heads/*:refs/remotes/origin/* 

ssh-add -l дает:

2048 ... /home/username/.ssh/id_rsa (RSA) 

Это настроение прямо сейчас.

  1. файлы веб-приложения/каталоги принадлежат каталог apache
  2. .git является принадлежит корню также принадлежит апача
  3. я войти, как username и дома /home/username. У меня есть судо.
  4. У меня есть ключ на ~/.ssh/id_rsa

То, что я хочу, это способность войти в username и тянуть и толкать к репо с использованием этого ключа. Как мне настроить это так, чтобы я или другой пользователь мог git push/pull без вмешивания файлов в этот каталог веб-приложений?

ответ

1

Просто не используйте sudo: ssh -Tv [email protected] использует вашу текущую учетную запись пользователя. sudo использует /root.

Или, если вам нужно использовать sudo, убедитесь, что /root/.ssh содержит общедоступный/закрытый ключ ssh, используемый для доступа к битбакету, sudo ssh session не работает.

+0

Я немного обновил свой пост. Я получил толчок к работе, но тяга не работает. Я думаю, что знаю причину, но я не знаю, как ее решить. Я не пробовал «sudo git pull ...», потому что я не был уверен, как это изменит право собственности на файл, что является «apache». – musicliftsme

+0

@musicliftsme Почему вы не можете использовать 'git pull' напрямую? Без 'sudo'? И с правильным счетом? – VonC

+0

@musicliftsme будет 'umask 002' help (http://serverfault.com/a/612032/783) – VonC

Смежные вопросы