微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

domain-name-system – 为什么SSH无法解析此主机名?

当我尝试SSH连接到名为storage的网络上的主机时,我得到DNS解析失败:
$ssh storage
ssh: Could not resolve hostname storage: Name or service not kNown

但是当我用主机查询DNS时,它可以工作

$host storage
storage has address 192.168.20.103

怎么主机可以找到IP但ssh不能?

解决方法

ssh和host解析完全不同路径的名称,因此有时会产生不同的结果也就不足为奇了,特别是当要解析的名称不是FQDN时(因此建议在任何地方使用FQDN).

你没有提到你的操作系统和你的系统配置,所以我必须保持一般,关注Linux:MacOS细节有些不同,Windows甚至更多,但一般概念是相同的.

>主机查询DNS,所以基本上它在/etc/resolv.conf中查找并查询其中列出的服务器,如果主机名尚未完全限定,则可能附加域名.它忽略了所有其他可能的来源,但要注意,现在许多系统运行本地缓存DNS服务器(通常是dnsmasq),它在查询其他DNS服务器之前读取/ etc / hosts和其他源,因此如果主机查询本地服务器,则来自/等/主机可以进入.
> ssh遵循自己的路径.我将描述openssh在Linux下的作用,其他实现有所不同.首先,它查找配置文件中定义的主机昵称(系统范围的/ etc / ssh / ssh_config和per-user~ / .ssh / config),然后按照/ etc /中的hosts:指令指定的顺序搜索其他源nsswitch.conf的.说它是这样的:

hosts: files dns

这意味着:查看/ etc / hosts然后再查询DNS(/etc/resolv.conf).其他可能的来源是过时的nis和netinfo服务,LDAP,活动目录,您可以为它们命名.

要调试您的特定情况,您应该遵循ssh实现的路径并找出它被卡住的位置.

原文地址:https://www.jb51.cc/html/229698.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐