ssh: Hostname [Hostname] konnte nicht aufgelöst werden: Knotenname oder Servname angegeben oder nicht bekannt

131

Ich versuche, ein VPN mit einem Raspberry Pi einzurichten. Der erste Schritt besteht darin, sshvon außerhalb meines lokalen Netzwerks in das Gerät zu gelangen. Aus irgendeinem Grund erweist sich dies als unmöglich und ich habe nicht die geringste Ahnung warum. Wenn ich versuche, mit sshauf meinen Server zuzugreifen user@hostname, wird folgende Fehlermeldung angezeigt:

ssh: Could not resolve hostname [hostname]: nodename nor servname provided, or not known 

Ich kann mich jedoch beim Server anmelden mit:

ssh user@[local IP]

Der Server ist ein Raspberry Pi Model B, auf dem die neueste Distribution von Raspbian ausgeführt wird, und der Computer, mit dem ich eine Verbindung herstellen möchte, ist ein Macbook Pro mit Mavericks. sshwurde auf dem Raspberry Pi aktiviert, als ich Raspbian einrichtete.

Ich habe den Stapelüberlauf stundenlang durchgesehen und versucht, festzustellen, ob jemand anderes dieses Problem hatte, und ich habe nichts gefunden. Jedes sshTutorial, das ich finde, besagt, dass ich es einfach auf dem Remote-Computer einrichten und mich von überall mit einem Hostnamen anmelden kann, und damit hatte ich noch nie Erfolg.

qaxf6auux
quelle
Der ursprüngliche Fehler weist auf das spezifische Problem hin. Was auch immer [hostname]Sie verwenden, kann nicht von dem Ort aus behoben werden, von dem aus Sie es versuchen. Gibt nslookup [hostname]es Ihnen das zurück, was [local IP]Sie erwarten?
Admdrew
2
nslookup [hostname]ausspucken; Server: 8.8.8.8 Adresse: 8.8.8.8 # 53 ** Server kann [Hostname]: NXDOMAIN nicht finden, wenn er von meinem Macbook ausgeführt wird
qaxf6auux
2
Nur um sicher zu gehen - Sie geben einen tatsächlichen Hostnamen ein [hostname], oder?
Admdrew
Diese Ausgabe zeigt, dass Sie die öffentlichen DNS-Server von Google verwenden, die nicht wissen, welchen Hostnamen Sie verwenden möchten. Wie genau richten Sie DNS-Einträge für Ihren Hostnamen ein?
Admdrew
2
Server: 192.168.0.1 Address: 192.168.0.1#53 ** server can't find mrddr: NXDOMAIN
Nakilon

Antworten:

29

Kürzlich bin ich auf das gleiche Problem gestoßen. Ich konnte auf meinem Netzwerk in meinem Netzwerk ssh, aber nicht von außerhalb meines Heimnetzwerks.

Ich habe schon:

  • ssh in meinem Heimnetzwerk installiert und getestet.
  • Stellen Sie eine statische IP für meinen Pi ein.
  • Richten Sie einen dynamischen DNS-Dienst ein und installieren Sie die Software auf meinem Pi. Ich habe auf diese Anweisungen zum Einrichten der statischen IP verwiesen , und es gibt viel mehr Anleitungsressourcen.

Außerdem habe ich auf meinem Router die Portweiterleitung für das Hosten einer Website eingerichtet, und ich hatte sogar die Portweiterleitung für Port 22 an die statische IP meines Pi für ssh, aber ich habe das Feld leer gelassen, in dem Sie die Anwendung angeben, für die Sie die Portweiterleitung durchführen der Router. Wie auch immer, ich habe 'ssh' in dieses Feld eingefügt und VOILA! Eine funktionierende SSH-Verbindung von überall zu meinem Pi.

Ich werde die Portweiterleitungseinstellungen meines Routers aufschreiben.

(ApplicationTextField) _ssh (externer Port) _22 (interner Port) _22 (protokal) _Beide (an IP-Adresse) _192.168.1. ### (aktiviert) _checkBox

Die Einstellungen für die Portweiterleitung können jedoch für verschiedene Router unterschiedlich sein. Suchen Sie daher nach den Anweisungen für Ihren Router.

Wenn ich mich außerhalb meines Heimnetzwerks befinde, verbinde ich mich mit meinem Pi, indem ich Folgendes eingebe:

ssh pi @ [Hostname]

Dann kann ich mein Passwort eingeben und eine Verbindung herstellen.

ekwaters
quelle
109

Wenn Sie einen Mac verwenden, wurde das Problem durch einen Neustart des DNS-Responders behoben.

sudo killall -HUP mDNSResponder
Mo Bitar
quelle
Ich musste auch pingen, nslookup und die Domain graben. Ich bin mir nicht sicher, welche davon geholfen hat. Vielleicht hat nur das Warten geholfen.
Samizdis
funktionierte auch für mich .. dieses Problem begann, nachdem ich meinen Mac neu gestartet hatte .. weiß nicht, was während des Bootens durcheinander gebracht wurde
murli
Ich bin auch neugierig zu wissen, warum das funktioniert ... und was das Problem überhaupt verursacht.
Mystic Cola
Wenn es nslookupfunktioniert, aber ssh / ping / was auch immer nicht, behebt dies das Problem. Vielen Dank.
Erik B
93

Ich hatte das gleiche Problem beim Verbinden mit einem Remote-Computer. aber ich konnte mich wie folgt anmelden:

ssh -p 22 myName@hostname

oder:

ssh -l myName -p 22 hostname
tokhi
quelle
endlich klappt es! Es muss einen Fehler in der Syntax gebenssh myName@hostname:myPort
Edoardo
10

Wenn Sie von überall auf der Welt Zugriff auf Ihr VPN benötigen, müssen Sie einen Domainnamen registrieren und ihn auf die öffentliche IP-Adresse Ihres VPN / Netzwerk-Gateways verweisen lassen. Sie können auch einen dynamischen DNS-Dienst verwenden, um einen Hostnamen mit Ihrer öffentlichen IP-Adresse zu verbinden.

Wenn Sie nur von Ihrem Mac zu Ihrer Himbeere in Ihrem lokalen Netzwerk ssh müssen , gehen Sie folgendermaßen vor: Bearbeiten Sie auf Ihrem Mac /etc/hosts. Angenommen, die Himbeere hat den Hostnamen "berry" und die IP "172.16.0.100", fügen Sie eine Zeile hinzu:

# ip           hostname
172.16.0.100   berry

Jetzt: ssh user@berrysollte funktionieren.

grebneke
quelle
Zusätzlich zu oben habe ich "windows-cmd" verwendet, um die IP für meine Server-URL kennenzulernen. Ich habe "ping url" gemacht, um die IP zu bekommen. und fügte daher das IP- und das URL-Paar in "/ etc / hosts" hinzu. Es funktioniert dort perfekt danach (Git Pull, etc.)!
Parasrish
9

Ich hatte das gleiche Problem, das ich beheben konnte, indem ich dem Hostnamen eine .local hinzufügte, ala ssh [email protected]

horcle_buzz
quelle
Das hat es für mich getan. ping $(hostname)funktionierte aber muss tun ssh $(hostname).local. Mac ist normalerweise großartig ... aber wenn es
scheiße ist,
Ich habe ein weiteres Problem: hadoopmuss tun ssh user@hostnameund ich kann nicht einfach .localmanuell hinzufügen . Ich stecke fest
Javadba
Das Hinzufügen .localhat es für mich unter Ubuntu 19.10 getan.
Prkos
5

In meinem Fall habe ich ssh so versucht

ssh [email protected]:22 

wenn das richtige Format ist:

ssh [email protected] -p 22 
Pedro
quelle
1
Wow-- war für immer mit Portweiterleitung fest! Dies ist der heilige Text.
FrozenOne
4

Wenn Ihr Befehl lautet:

$ ssh -p 1122  path/to/pemfile user@[hostip/hostname]

Sie werden auch den gleichen Fehler sehen

ssh: Could not resolve hostname [hostname]: nodename nor servname provided, or not known

wenn Sie die Option -i /path/to/pemfilevon ssh verpassen

Befehl sollte also sein:

$ ssh -p 1122 -i path/to/pemfile user@[hostip/hostname]
karthik v
quelle
Ich habe die Pemfile-Optionen nicht verwendet, aber immer noch verbunden mitssh -p xxxx user@hostname
Yoku
4

Ich musste eine Verbindung zum Remote-Amazon-Server herstellen

ssh -i ~/.ssh/test.pem -fN -L 5555:localhost:5678 [email protected]

Ich habe den folgenden Fehler erhalten.

ssh: Could not resolve hostname <hostname.com>: nodename nor servname provided, or not known

Lösung für Mac OSX

Das Pingen des Hosts hat das Problem behoben. Ich benutze Mac OSX Seirra.

ping hostname.com

Jetzt Problem behoben. Kann eine Verbindung zum Server herstellen.

Hinweis : Ich habe diese Lösung auch ausprobiert . Aber es hat nicht geklappt. Dann wurde pingdas Problem behoben.

mythischer Kodierer
quelle
3

Ich hatte das gleiche Problem: Die in den Einstellungen -> Freigabe -> Remote-Anmeldung angegebene Adresse funktionierte nicht und ich erhielt einen "... Knotennamen oder Servnamen angegeben oder nicht bekannt". Als ich jedoch die Einstellungen manuell bearbeitete (unter Einstellungen -> Freigabe -> Remote-Anmeldung -> Bearbeiten) und "Dynamischen globalen Hostnamen verwenden" aktivierte, funktionierte dies plötzlich.

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein


quelle
3

Es scheint, dass einige Apps nicht symlinked lesen /etc/hosts(zumindest unter macOS), Sie müssen es fest verknüpfen.

ln /path/to/hosts_file /etc/hosts

Andrei Vaduva
quelle
2

Dies passierte mir, als ich versuchte, auf Github zuzugreifen. Das Problem ist, dass ich die Gewohnheit hatte:

git remote add <xyz> ssh:\\[email protected]......

Wenn Sie jedoch diesen Fehler in der Frage haben, entfernen Sie ihn ssh:\\ kann das Problem durch behoben werden. Es hat es für mich gelöst!

Beachten Sie, dass Sie eine git remote remove <xyz>ausführen und die Remote-URL ohne erneut hinzufügen müssen ssh:\\.

Monkpit
quelle
1
Hast du wirklich ssh:\\eher verwendet als ssh://?
Radon Rosborough
@RadonRosborough Das ist jetzt eine Weile her ... also bin ich mir nicht sicher. Könnte haben! :)
Monkpit
1

Für mich war das Problem ein Tippfehler in meiner ~/.ssh/configDatei. Ich hatte:

Host host1:
  HostName 10.10.1.1
  User jlyonsmith

Das Problem war das :nach dem host1- es sollte nicht da sein. sshgibt keine Warnungen für Tippfehler in der ~/.ssh/configDatei. Wenn es nicht gefunden werden host1kann, sucht es lokal nach dem Computer, kann es nicht finden und gibt die kryptische Fehlermeldung aus.

Jlyonsmith
quelle
0

Versuchen Sie dies unter Berücksichtigung Ihrer zulässigen Ports. Speichern Sie Ihre .pemDatei beispielsweise in Ihrem DocumentsOrdner.

Um jetzt darauf zugreifen zu können, müssen cd [directory]Sie nur noch in das Verzeichnis der zugewiesenen Datei wechseln. Sie können zuerst Folgendes eingeben ls, um den Verzeichnisinhalt aufzulisten, in dem Sie sich gerade befinden:

ls
cd /Documents
chmod 400 mycertificate.pem
ssh -i "mycertificate.pem" [email protected] -p 80
Karl Richter
quelle
0

Ich habe diesen Fehler durch die Verwendung einer .yml-Inventardatei in ansible erhalten, die nicht richtig formatiert wurde. Bei mehreren Hosts in einer Gruppe muss jeder Hostname mit einem Doppelpunkt ":" enden. Andernfalls führt ansible die Hostnamen zusammen aus und erzeugt diesen SSH-Fehler.

Steve Yount
quelle