macOS下ssh -T git@bitbucket.org默认登录用户来源及修改方法
macOS下SSH连接Bitbucket默认身份来源及自定义配置方法
一、默认身份xyz的读取来源
SSH连接远程主机时的身份密钥按以下优先级读取,你看到的默认身份xyz就是匹配到最高优先级的密钥对应的Bitbucket账号:
- 第一优先级:
~/.ssh/config用户自定义SSH配置:如果该文件中存在bitbucket.org对应的Host规则,且指定了IdentityFile参数,会优先使用该参数指定的密钥认证 - 第二优先级:ssh-agent当前缓存的密钥:如果之前添加过xyz对应的密钥到ssh-agent,且密钥还在缓存有效期内,会优先使用该密钥
- 第三优先级:
~/.ssh目录下的默认命名密钥:如果没有匹配到上述两项,SSH会自动依次尝试id_rsa、id_ecdsa、id_ed25519等默认命名的私钥文件,只要其中某个密钥的公钥绑定了xyz的Bitbucket账号,就会认证为该用户
你之前手动在
.profile中添加ssh-add修改身份生效,本质就是把指定账号的密钥加载到ssh-agent中,提升了该密钥的匹配优先级。
二、永久配置指定Git账号的方法
不需要依赖.profile加载ssh-add的临时方案,直接修改SSH配置文件即可永久生效:
- 先确认你要使用的账号对应的SSH密钥对已经生成,假设生成的私钥路径为
~/.ssh/bitbucket_myaccount - 打开
~/.ssh/config文件(如果不存在就手动新建),添加以下配置:
Host bitbucket.org HostName bitbucket.org User git IdentityFile ~/.ssh/bitbucket_myaccount IdentitiesOnly yes
参数说明:
IdentityFile指定你要使用的对应账号的私钥路径IdentitiesOnly yes强制SSH只使用你指定的密钥进行认证,不会尝试其他默认密钥或者ssh-agent中其他无关密钥,彻底避免身份错乱问题
- 保存配置后执行
ssh -T git@bitbucket.org验证,返回的用户就是你指定的账号对应的用户名
内容的提问来源于stack exchange,提问作者Sean
相关产品推荐
相关产品推荐

