Git推送到GitHub遇异常:无上游分支+SSH主机解析失败
问题分析与解决方法
问题根源
错误ssh: Could not resolve hostname github: Name or service unknown的核心原因是:SSH无法识别github这个主机名,要么是Git远程仓库地址写错(缺少.com后缀),要么是SSH配置里的Host别名配置失效或错误。
解决步骤
检查并修正Git远程仓库地址
执行git remote -v确认输出的push地址,正确格式应为git@github.com:你的用户名/仓库名.git。如果你的地址是git@github:你的用户名/仓库名.git(缺少.com),执行以下命令修正:git remote set-url origin git@github.com:你的用户名/你的仓库名.git检查SSH配置文件
打开~/.ssh/config文件(不存在则创建),确认是否有针对GitHub的Host别名配置,正确示例如下:Host github HostName github.com User git IdentityFile ~/.ssh/你的私钥文件名(如id_rsa)补全或修正配置后,执行
ssh -T github测试连接,成功会返回Hi 你的用户名! You've successfully authenticated, but GitHub does not provide shell access.验证SSH密钥有效性
如果SSH连接测试失败,检查两项:- 本地私钥权限:执行
chmod 600 ~/.ssh/你的私钥文件名,确保权限为仅当前用户可读可写。 - GitHub后台公钥:登录GitHub进入
Settings -> SSH and GPG keys,确认本地公钥(~/.ssh/你的公钥文件名.pub内容)已正确添加且未过期。
- 本地私钥权限:执行
重新推送代码
确认上述步骤无误后,重新执行:git push --set-upstream origin main
内容的提问来源于stack exchange,提问作者sw016428
相关产品推荐
相关产品推荐

