Bitbucket多Git配置异常:克隆时SSH密钥匹配错误求助
问题原因及解决办法
核心原因
你用的克隆命令里写的是git@bitbucket.org:account1/my.cool.project.git,而SSH配置文件里对应的账号规则是Host bitbucket.org-account1——SSH客户端是严格按照你命令里指定的主机名(这里是bitbucket.org)来匹配配置里的Host项的,根本没触发到bitbucket.org-account1这个规则,直接走了最后匹配所有主机的Host *,所以用了默认的id_rsa密钥,自然会要求你输入这个密钥的密码。
解决办法
有两种简单的处理方式:
方法1:修改克隆命令(推荐)
把命令里的bitbucket.org换成配置里的别名bitbucket.org-account1,也就是:
git clone git@bitbucket.org-account1:account1/my.cool.project.git
这样SSH就会匹配到对应的规则,自动使用id_rsa_account1密钥,不会再触发默认密钥的验证。
方法2:调整SSH配置(适合不想改命令的情况)
如果不想每次都写别名,可以把配置里的Host项改成bitbucket.org,同时保留其他配置:
Host bitbucket.org HostName bitbucket.org User git IdentityFile ~/.ssh/id_rsa_account1 IdentitiesOnly yes
但注意:这么改后,所有指向bitbucket.org的SSH连接都会用这个密钥,如果你有多个Bitbucket账号,这种方法会产生冲突,还是方法1更灵活。
额外说明
你配置里的IdentitiesOnly yes是正确的,它能强制SSH只使用你指定的IdentityFile里的密钥,不会自动尝试其他本地密钥,但前提是SSH能匹配到对应的Host规则才行。
内容的提问来源于stack exchange,提问作者zeropsi
相关产品推荐
相关产品推荐

