git push with ssh to server,public key error

时间:2014-03-03 17:33:39

标签: git ssh amazon-ec2 ubuntu-12.04

我有ubuntu 12.04的ec2服务器,我已经向服务器添加了一个用户“git”。生成ssh密钥并上传到两个用户.ssh目录。所以现在我可以访问我的服务器了

ssh ubuntu@example.com
ssh git@example.com

我已经为/opt/git/gitpg.git创建了一个裸存储库,并将其作为远程添加到我的本地存储库

sudo git remote add deploy ubuntu@example.com:/opt/git/gitpg.git

当我尝试推送到此存储库时,它会显示身份验证错误。

sudo git push deploy master
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

我也尝试了this solution,但它也无效。

有人可以建议可能的原因吗?

更新

当我尝试git push deploy master代替sudo git push deploy master时,它会成功连接,但由于权限无法推送。

Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 356 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
To ubuntu@example.com:/opt/git/gitpg.git
   d6cc9c3..25ddaa4  master -> master
error: unable to create directory for .git/refs/remotes/deploy/master
error: Cannot lock the ref 'refs/remotes/deploy/master'.

更新2

我将本地目录权限更改为当前用户,现在它在没有sudo的情况下工作。 但我仍然不知道为什么它和sudo一起工作。

1 个答案:

答案 0 :(得分:0)

尝试将您的公钥放在.ssh/authorized_keys中的服务器中,或使用其他协议:

ssh://ubuntu@example.com/opt/git/gitpg.git