我正在使用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?
答案 0 :(得分:12)
使用ssh-add $keyfile
将您的私钥添加到代理。
然后使用ssh-add -L
显示该密钥的公钥。 - 验证它与添加到bitbucket帐户的帐户匹配。
现在尝试ssh到bitbucket应该通过密钥登录,即没有密码。
同样git clone
ssh现在应该可以正常工作。
使用sudo
可能不是一个好主意。它肯定会切断与代理的连接并更改$ HOME / .ssh,因此sudo启动的ssh将无法使用您的密钥。
您可以使用sudo -E
来保护您的环境。在这种情况下,密钥应该仍然有效。