MacOS Monterey下自定义SSH密钥访问GitHub私有仓库失败求助
强制Git使用自定义SSH密钥访问GitHub私有仓库的解决方案
方法1:完善SSH配置文件,强制指定密钥
打开~/.ssh/config,修改Host gmail的配置,加上IdentitiesOnly yes参数,确保SSH只使用你指定的密钥:
Host gmail HostName github.com User git IdentityFile ~/.ssh/mykey IdentitiesOnly yes
IdentitiesOnly yes会让SSH客户端忽略SSH代理中其他已加载的密钥,只使用配置里指定的mykey,彻底避免默认密钥被优先调用。
方法2:为单个仓库单独配置SSH命令
如果只需要针对特定仓库使用自定义密钥,可直接在克隆时指定:
GIT_SSH_COMMAND="ssh -i ~/.ssh/mykey -o IdentitiesOnly=yes" git clone git@github.com:Username/myrepo.git
要是仓库已经克隆到本地,进入仓库目录后执行以下命令,后续该仓库的所有Git操作都会用指定密钥:
git config core.sshCommand "ssh -i ~/.ssh/mykey -o IdentitiesOnly=yes"
方法3:清理SSH代理中的默认密钥(可选)
先查看SSH代理中加载的所有密钥:
ssh-add -l
找到默认的id_ed25519对应的指纹,执行命令移除它:
ssh-add -d ~/.ssh/id_ed25519
再重新添加你的自定义密钥:
ssh-add ~/.ssh/mykey
这个方法适合不需要同时使用多个GitHub账号的场景。
内容的提问来源于stack exchange,提问作者Dan Rockstone
相关产品推荐
相关产品推荐

