Wenn ich versuche, eine SSH-Verbindung zu einem Host im angegebenen Netzwerk herzustellen storage
, tritt ein DNS-Auflösungsfehler auf:
$ ssh storage
ssh: Could not resolve hostname storage: Name or service not known
Aber wenn ich DNS mit Host abfrage, funktioniert es
$ host storage
storage has address 192.168.20.103
Wie host
kann man die IP finden, aber ssh
nicht?
domain-name-system
ssh
Jldugger
quelle
quelle
storage
eine Live-Top-Level-Domain im Internet.sto
und drücke dann die Tabulatortaste.Antworten:
ssh
undhost
lösen Sie Namen auf völlig unterschiedlichen Wegen auf. Es ist daher nicht verwunderlich, dass sie manchmal zu unterschiedlichen Ergebnissen führen, insbesondere wenn der aufzulösende Name kein FQDN ist (daher der Vorschlag, FQDNs überall zu verwenden).Sie erwähnen nichts über Ihr Betriebssystem und Ihre Systemkonfiguration, deshalb muss ich es allgemein halten, mit Blick auf Linux: MacOS-Details sind etwas anders und Windows noch mehr, aber die allgemeinen Konzepte sind die gleichen.
host
fragt DNS ab, durchsucht also im Grunde/etc/resolv.conf
die dort aufgelisteten Server und fügt möglicherweise einen Domänennamen hinzu, wenn der Hostname noch nicht vollständig qualifiziert ist. Es ignoriert jede andere mögliche Quelle, aber Vorsicht , dass in diesen Tagen viele Systeme einen lokalen Caching - DNS - Server ( in der Regel laufendnsmasq
) , die liest/etc/hosts
und anderen Quellen , bevor andere DNS - Server abfragen, so dass , wennhost
Abfragen, die lokalen Server, ergibt sich aus/etc/hosts
kann einschleichen.ssh
folgt seinem eigenen Weg. Ich werde beschreiben, wasopenssh
unter Linux funktioniert, andere Implementierungen unterscheiden sich. Zuerst sucht es nach Host-Kurznamen, die in Konfigurationsdateien definiert sind (systemweit/etc/ssh/ssh_config
und benutzerspezifisch~/.ssh/config
), dann durchsucht es andere Quellen in der von derhosts:
Direktive in angegebenen Reihenfolge/etc/nsswitch.conf
. Angenommen, es ist so etwas wie:das heißt: schau
/etc/hosts
rein und frage dann den DNS (/etc/resolv.conf
nochmal) ab. Andere mögliche Quellen sind die veraltetennis
undnetinfo
Dienste, LDAP, Active Directory, Sie benennen sie.Um Ihren speziellen Fall zu debuggen, sollten Sie dem Pfad folgen, dem Ihre Implementierung
ssh
folgt, und herausfinden, wo es hängen bleibt.quelle
/etc/nsswitch.conf
zum Lesen zu wechseln , hathosts: files dns
mir geholfen. Als interessante Randnotiz habe ich in den letzten Wochen mit Raspian Jessie mehrere Himbeer-Pis eingerichtet, die alle diese Änderung erforderten.