ssh:无法解析主机名git:名称或服务未知(致命):无法从远程存储库读取

时间:2018-11-03 08:38:57

标签: git gitlab

在我从仓库中将HTTPS切换到SSH之后,当我推送到原始主机时,我收到了此错误消息:

ssh: Could not resolve hostname git: Name or service not known
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

我还将ssh添加到gitlab中。我该怎么办?

4 个答案:

答案 0 :(得分:2)

好吧,在我的情况下,我的本地系统未连接到VPN,因此出现此错误。因此,这可能是上述答案之外的原因之一。

答案 1 :(得分:1)

我遇到了同样的错误。

我更改了[remote "origin"]文件中的url .git/config值,现在一切正常。

以前:

https://git@github.com:userName/repo.git

OR

ssh://git@github.com:userName/repo.git

git@github.com:userName/repo.git

答案 2 :(得分:0)

通过

HTTPS URL,即使在防火墙或代理后面工作时,也可以轻松访问私有或公共存储库。这是推荐的方法。

另一方面,SSH URL使用安全的ssh协议来访问存储库。

回到您的问题,该错误可能是由于配置不当造成的。 git remote add命令用于将一个已经尝试过的新远程添加到您的存储库。但是,从HTTPS切换到SSH网址意味着您的远程来源已经设置为http网址,并且您想要更改。

因此,首先检查您当前的远程来源是指什么网址:

$ git remote -v

如果引用的是HTTPS网址,则必须使用

$ git remote set-url origin mySSH_url

命令将其更改为SSH网址。

现在,尝试使用git remote -v,它将显示为来源配置的SSH URL。

请确保在使用SSH url时,已在GitLab / GitHub帐户上同时生成了ssh密钥并将其添加到ssh-agent

Here是一篇很好的文章,介绍了如何更改遥控器的URL。

此外,您可以了解有关使用here的远程URL的更多信息。

答案 3 :(得分:0)

在我的commit然后rebase之后出现此错误,我通过在命令中使用--force rebase解决了这个问题:

git push --force -u origin <beanch>