添加公钥后Bitbucket仓库Git Clone访问被拒,求自定义密钥配置
解决Bitbucket SSH访问时使用自定义密钥的问题
当然可以覆盖默认的密钥命名规则,用自定义命名的SSH密钥访问Bitbucket。从你的debug日志能看到,SSH默认会依次尝试id_rsa、id_dsa这些默认命名的密钥,而你的自定义密钥不在这个列表里,所以需要明确告诉SSH要使用哪一个密钥。下面给你两种实用的解决方法:
方法一:临时指定密钥(单次使用)
每次执行SSH或Git操作时,通过-i参数直接指定你的自定义私钥路径:
- 测试SSH连接:
ssh -i /path/to/your/custom/private/key -v bitbucket.org - 克隆仓库时指定密钥:
git clone git@bitbucket.org:your-username/your-repo.git --config core.sshCommand="ssh -i /path/to/your/custom/private/key" - 如果已经克隆了仓库,想后续操作都用这个密钥,给仓库单独配置SSH命令:
git config core.sshCommand "ssh -i /path/to/your/custom/private/key"
方法二:配置SSH config文件(持久化方案)
这种方法一劳永逸,以后不用每次都输入密钥路径,直接通过自定义主机名访问即可:
- 打开(或创建)SSH配置文件:
nano ~/.ssh/config - 添加以下配置内容(替换成你的实际密钥路径和账号信息):
Host bitbucket-myaccount HostName bitbucket.org User git IdentityFile /path/to/your/custom/private/key IdentitiesOnly yesHost:自定义的主机别名,比如用你的账号名命名,方便区分不同账号的密钥IdentitiesOnly yes:强制SSH只使用你指定的IdentityFile,不会去尝试其他默认密钥(完美解决你当前和另一个账号的id_rsa冲突问题)
- 保存并退出编辑器(nano按
Ctrl+O回车,再Ctrl+X) - 测试连接:
ssh bitbucket-myaccount - 克隆仓库时直接用自定义主机名:
git clone bitbucket-myaccount:your-username/your-repo.git
关键注意事项
- 确保自定义私钥的权限正确:SSH要求私钥必须是仅当前用户可读可写,执行命令修改权限:
chmod 600 /path/to/your/custom/private/key - 再次确认对应的公钥已经完整添加到你的Bitbucket账号SSH密钥列表中(注意不要有多余的空格或换行)
内容的提问来源于stack exchange,提问作者Eric Brown
相关产品推荐
相关产品推荐

