我有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一起工作。
答案 0 :(得分:0)
尝试将您的公钥放在.ssh/authorized_keys
中的服务器中,或使用其他协议:
ssh://ubuntu@example.com/opt/git/gitpg.git