git ssh 无法访问主机但使用直接 IP 时成功(Windows 10)

Posted

技术标签:

【中文标题】git ssh 无法访问主机但使用直接 IP 时成功(Windows 10)【英文标题】:git ssh fails to access host but succeed when direct IP is used (Windows 10) 【发布时间】:2018-04-30 02:06:37 【问题描述】:

我在 Windows 10 中使用 git/bash 并尝试克隆存储库。 当我使用命令:git clone username@hostname 时,我得到: ssh:无法解析主机名 stbcmgit:名称或服务未知

但是,当我使用直接 IP 地址而不是主机名 (git clone username@x.x.x.x) 时,访问成功并开始克隆。

注意事项:

known_hosts”文件位于c:\Users\myname\.ssh 该文件取自我的 Linux 帐户,在那里一切正常。 .ssh 文件夹还包含 id_rsaid_rsa.pub 密钥(也从 Linux 复制)。 当我使用“ls $HOME/.ssh”时,我看到列出了这些文件。 使用 Windows 10。

谢谢。

【问题讨论】:

您连接的主机名是否正确解析? IE。在 DNS 中配置,或 ssh_config。试试nslookup hostname 您可以按照链接中的步骤操作:***.com/questions/20252294/… 【参考方案1】:

~/.ssh/config 可能包含此类定义。

这些定义也包含端口号(我认为 /etc/hosts 不能)。

【讨论】:

【参考方案2】:

您应该检查/etc/hosts,如果不存在则添加这样一行:

x.x.x.x hostname

如果主机的IP没有改变,你可以通过像这样创建$HOME/.ssh/config来简化整个命令

Host YourHost
    HostName x.x.x.x
    User username
    IdentityFile ~/.ssh/id_rsa
    PubKeyAuthentication yes

现在你可以运行这些命令了:

git clone YourHost:repo
ssh YourHost

【讨论】:

第二个建议似乎对这种情况有所帮助,谢谢! 第一个建议在使用 TortoiseGit 时很有帮助。【参考方案3】:

Windows 10 以及有关“Windows linux 子系统”又名 “Bash” 的最新更新之后,现在您 必须通过编辑此文件为任何所需的主机名分配其相对 IP 地址:

C:\Windows\System32\drivers\etc\hosts

P.S:在您的 linux 上,请检查 /etc/hosts 而不是 'known_hosts' 文件

【讨论】:

以上是关于git ssh 无法访问主机但使用直接 IP 时成功(Windows 10)的主要内容,如果未能解决你的问题,请参考以下文章

无法通过 ssh 连接到 Github,无法访问 .ssh.config

通过公共 IP 访问 SSH 隧道 IIS“错误请求 - 无效主机名”

centos6.4版本中ssh+ip可以登录ssh+主机名无法登录,求大神帮忙。

如何配置系统通过 ssh 反向隧道/代理使用 git?

ssh:无法解析主机名 gitlab.com:user_name/repo_name.git:名称或服务未知

ansible总结