SSH配置多GitHub账户后新项目推送提示无权限/仓库不存在如何解决
排查解决步骤
- 验证SSH连接有效性
直接执行对应Host的SSH测试命令,替换尖括号内容为你实际配置的Host后缀:
正常返回结果应为ssh -T git@github.com-<你的用户名>Hi <对应GitHub用户名>! You've successfully authenticated, but GitHub does not provide shell access.,若返回权限错误,说明SSH配置或密钥与账户绑定存在问题,需重新核对密钥上传状态、SSH config的Host拼写、密钥路径是否正确。 - 核对Remote URL格式正确性
检查远程仓库地址的冒号后是否多加了前导斜杠,正确格式应为git@<SSH配置的Host名>:<仓库所有者用户名>/<仓库名>.git,若错误可执行以下命令修改远程地址:
同时确认目标仓库名称、所有者用户名的拼写与大小写和GitHub端完全一致。git remote set-url origin git@github.com-<你的用户名>:<你的用户名>/test.git - 校验SSH文件权限
SSH默认会拒绝权限过高的密钥文件,执行以下命令修正权限:chmod 700 ~/.ssh chmod 600 /path/to/ssh/key1 # 替换为你的私钥路径 chmod 600 /path/to/ssh/key2 # 替换为你的私钥路径 - 排查全局Git配置干扰
检查是否存在全局insteadOf配置强制替换了SSH地址:
若存在相关配置,可执行git config --global -l | grep insteadOfgit config --global --unset <对应配置项>删除。 - 开启调试定位具体问题
执行带SSH调试日志的推送命令,查看实际使用的密钥是否正确:
从输出的debug日志中查找GIT_SSH_COMMAND="ssh -v" git pushOffering public key相关行,确认使用的密钥路径与你SSH config中配置的对应Host密钥一致,若匹配错误需检查SSH config的Host名拼写、缩进格式(仅支持空格缩进,不能用Tab)。
内容的提问来源于stack exchange,提问作者user16023902
相关产品推荐
相关产品推荐

