Sé que hay muchas preguntas similares, pero todavía me estoy rascando la cabeza después de más de una hora de debugging. Había configurado Git usando HTTPS anteriormente, pero me gustaría usar SSH ahora. Sin embargo, cuando git pull origin master
, me sale
error: git checkout-index: unable to create file test.txt (Permission denied)
Creo que es porque los files son propiedad de apache
y necesito configurar algo para que Git escriba en los files propiedad de apache.
Aquí hay algo de información. ssh -Tv git@bitbucket.org
da:
logged in as my_bitbucket_username.
ll ~/.ssh/
da:
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
da:
[remote "origin"] url = git@bitbucket.org:bitbucket_user/myrepo.git fetch = +refs/heads/*:refs/remotes/origin/*
ssh-add -l
da:
2048 ... /home/username/.ssh/id_rsa (RSA)
Esta es la configuration en este momento.
apache
.git
directory es username
y mi casa es /home/username
. Tengo sudo. ~/.ssh/id_rsa
Lo que quiero es la capacidad de iniciar session como username
y tirar y empujar al repository usando esta tecla. ¿Cómo configuro esto para que yo u otro usuario pueda git push/pull
sin afectar la propiedad del file en este directory de la aplicación web?
Simplemente no use sudo
: ssh -Tv git@bitbucket.org
usa su count de usuario actual. sudo
usa /root
.
O, si tiene que usar sudo
, asegúrese de que /root/.ssh
contenga la key ssh pública / privada utilizada para acceder a bitbucket. Una session sudo ssh debería fallar.