Git SSH公钥被拒绝。

7
我正在使用Bitbucket,并按照此处的要求为Linux(Ubuntu 13.04)设置了git ssh。 https://confluence.atlassian.com/pages/viewpage.action?pageId=270827678 但是,当我尝试从Bitbucket帐户克隆任何项目时,出现了公钥拒绝错误。
omk@home-pc:/var/www/git$ sudo git clone git@bitbucket.org:MyAccount/MyProject.git
Cloning into 'MyProject'...
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

我已将公钥添加到我的Bitbucket账户中。

当我尝试输入“ssh -T git@bitbucket.org”时,终端才提示我输入我的密码,并且我会收到我的账户名称作为响应。

omk@home-pc:/var/www/git$ ssh -T git@bitbucket.org
logged in as MyUsername.

You can use git or hg to connect to Bitbucket. Shell access is disabled.

我错过了什么吗?

更新:

在$HOME克隆正常工作。问题在于必须在/var/www/git使用sudo。有什么办法可以更改权限以避免使用sudo吗?


不使用sudo,是否可以克隆到您的主目录? - michas
不行。出现了这个错误 - fatal: could not create work tree dir 'easydial'.: Permission denied。 - Omkar Khair
你尝试过克隆到$HOME还是/var/www/git吗?(你可能有权限写入第一个,但没有权限写入最后一个。) - michas
在$HOME进行克隆操作是有效的。有没有办法设置/var/www/git的权限,而不使用sudo? - Omkar Khair
3个回答

12

使用ssh-add $keyfile将您的私钥添加到代理中。

然后使用ssh-add -L显示该密钥的公钥。-验证它与添加到您的bitbucket帐户中的公钥匹配。

现在尝试通过ssh登录bitbucket应该会得到通过密钥登录的结果,即不需要密码。

另外,使用git clone通过ssh现在应该可行。

使用sudo可能不是一个好主意。这几乎肯定会同时断开与代理的连接并更改$HOME/.ssh,因此由sudo启动的ssh将无法使用您的密钥。 您可以使用sudo -E来保留您的环境。在这种情况下,密钥仍应有效。


有没有什么方法可以避免使用sudo。我感觉这就是问题所在。 - Omkar Khair
刚刚发现,在$HOME上使用克隆很好用。有没有办法更改/var/www/的权限? - Omkar Khair
1
无论您计划对存储库执行什么操作,都可以在/var/www/git上使用chown或使用sudo -E - michas
执行了 cd ; sudo cp .ssh/id_* /root/.ssh/ 命令,将我的密钥移动到 root 用户下。成功了!谢谢 :) - Omkar Khair
2
你救了我的命,谢谢!-E选项让我一天都很开心。 - sybear
显示剩余3条评论

0
将自己添加到具有访问/var/www/git权限的组中。

-2

我曾经遇到类似的问题,解决方法如下:首先,我启用了密码验证,然后添加了公钥,最后再次禁用了密码验证。我知道这可能不完全符合你的问题,但我想分享一下我的经验。


放心 :) 只是想讲述我的故事。 - Preikestolen
1
请参阅:如何撰写优秀的回答? - YesThatIsMyName

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接