我正在使用 Bitbucket,并且已在 Git 上设置 SSH 按照 Atlassian 文档中针对 Linux 的说明(Ubuntu 13.04)
当我尝试从我的 Bitbucket 帐户克隆任何项目时,我收到公钥被拒绝的错误。
omk@home-pc:/var/www/git$ sudo git clone [email protected]: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 [email protected]
时,终端才会提示我输入密码,然后我会得到我的帐户名作为响应。
omk@home-pc:/var/www/git$ ssh -T [email protected]
logged in as MyUsername.
You can use git or hg to connect to Bitbucket. Shell access is disabled.
在 $HOME 克隆效果很好。问题是必须在
/var/www/git处使用
sudo
。有什么方法可以更改权限以避免使用sudo
?
我错过了什么吗?
使用
ssh-add $keyfile
将您的私钥添加到代理。
然后使用
ssh-add -L
显示该密钥的公钥。 - 验证它是否与添加到您的 bitbucket 帐户中的一致。
现在尝试 ssh 到 bitbucket 应该会通过密钥登录,即不需要密码。
另外
git clone
通过 ssh 现在应该可以工作了。
使用
sudo
可能不是一个好主意。它肯定会切断与您的代理的连接并更改 $HOME/.ssh,因此由 sudo 启动的 ssh 将无法使用您的密钥。
您可以使用 sudo -E
来保护您的环境。在这种情况下,钥匙应该仍然有效。
我遇到了类似的问题,我是这样解决的:首先,我启用了 passwd auth,然后添加了公钥,然后再次禁用 passwd auth。我知道这不完全是你的问题,但我想分享我的经验。