Git克隆Bitbucket项目时SSH密钥权限拒绝问题求助
解决Git Clone Bitbucket时的Permission denied (publickey)问题
兄弟,你这是踩了个很容易搞混的小坑:你把SSH公钥放到本地的~/.ssh/authorized_keys里完全没用!这个文件是用来授权其他SSH客户端登录你的本地机器的,而Bitbucket需要你把公钥添加到你的Bitbucket账户设置里,这样平台才能识别你的身份。
下面一步步帮你搞定:
1. 先确认SSH密钥对没问题
先看看你生成的密钥对是否存在,执行:
ls ~/.ssh/
如果能看到id_rsa(私钥)和id_rsa.pub(公钥),说明密钥对是好的;如果没有,重新生成一个:
ssh-keygen -t rsa -b 4096 -C "你的Bitbucket绑定邮箱"
一路回车用默认设置就行,要是怕不安全可以设置个密钥密码(记得自己保管好)。
2. 把公钥添加到Bitbucket账户(最关键!)
这步是核心,之前你完全搞反了:
- 登录Bitbucket,点击右上角的头像 → Settings
- 左边菜单找SSH keys,点Add key
- 打开本地的
~/.ssh/id_rsa.pub文件,复制里面的全部内容(从ssh-rsa开头一直到末尾的邮箱,别漏也别多复制空格) - 把复制的内容粘贴到Bitbucket的Key输入框,给这个密钥起个好记的名字(比如“我的办公电脑”),然后点Add key
3. 测试SSH连接是否正常
添加完密钥后,先验证下能不能连上Bitbucket,执行:
ssh -T git@bitbucket.org
如果看到类似logged in as 你的Bitbucket用户名.的提示,说明连接成功了;要是还报错,继续往下查。
4. 排查本地SSH配置细节
- 你之前设置的
chmod 700 ~/.ssh是对的,但要确保私钥的权限是600:chmod 600 ~/.ssh/id_rsa - 如果你的密钥不是默认的
id_rsa(比如生成时指定了其他名字),得建个~/.ssh/config文件来指定对应Bitbucket的密钥:
创建并编辑文件:
粘贴以下内容(把nano ~/.ssh/config你的密钥文件名换成你实际的密钥名):
保存后给这个文件设置权限:Host bitbucket.org IdentityFile ~/.ssh/你的密钥文件名 IdentitiesOnly yeschmod 600 ~/.ssh/config
5. 重新执行Git Clone
现在再运行你的git clone命令,应该就能顺利克隆了。如果还是不行,检查下你用的clone URL是不是SSH格式的——得是git@bitbucket.org:你的用户名/项目名.git,而不是HTTPS开头的那种。
内容的提问来源于stack exchange,提问作者vico
相关产品推荐
相关产品推荐

