ssh: impossible de résoudre le nom d'hôte [nom d'hôte]: nom de noeud ou nom de service fourni, ou inconnu

132

J'essaie de configurer un VPN avec un Raspberry Pi, et la première étape consiste à acquérir la possibilité d'accéder à sshl'appareil depuis l'extérieur de mon réseau local. Pour une raison quelconque, cela s'avère impossible et je n'ai pas la moindre idée de pourquoi. Lorsque j'essaye d' accéder sshà mon serveur avec user@hostname, j'obtiens l'erreur:

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

Cependant, je peux me connecter au serveur avec,

ssh user@[local IP]

Le serveur est un Raspberry Pi Model B exécutant la dernière distribution de Raspbian et la machine avec laquelle j'essaie de me connecter est un Macbook Pro exécutant Mavericks. ssha été activé sur le Raspberry Pi lorsque j'ai configuré Raspbian.

J'ai parcouru Stack Overflow pendant des heures pour essayer de voir si quelqu'un d'autre avait ce problème et je n'ai rien trouvé. Chaque sshtutoriel que je trouve dit que je devrais simplement pouvoir le configurer sur la machine distante et me connecter de n'importe où en utilisant un nom d'hôte, et je n'ai jamais eu de succès avec cela.

qaxf6auux
la source
L'erreur d'origine indique le problème spécifique - tout [hostname]ce que vous utilisez ne peut pas être résolu à partir de l'endroit où vous l'essayez. Ne nslookup [hostname]vous REDONNER le [local IP]vous attendez?
admiré
2
nslookup [hostname]Crache; Serveur: 8.8.8.8 Adresse: 8.8.8.8 # 53 ** le serveur ne trouve pas [nom d'hôte]: NXDOMAIN lorsqu'il est exécuté à partir de mon Macbook
qaxf6auux
2
Juste pour être sûr - vous mettez un nom d'hôte réel [hostname], non?
admiré
Cette sortie montre que vous utilisez le ou les serveurs DNS publics de Google, qui n'ont aucune connaissance du nom d'hôte que vous essayez d'utiliser. Comment configurez-vous exactement les enregistrements DNS pour votre nom d'hôte?
admiré
2
Server: 192.168.0.1 Address: 192.168.0.1#53 ** server can't find mrddr: NXDOMAIN
Nakilon le

Réponses:

29

Récemment, je suis tombé sur le même problème. J'ai pu ssh à mon pi sur mon réseau, mais pas de l'extérieur de mon réseau domestique.

J'avais déjà:

  • installé et testé ssh sur mon réseau domestique.
  • Définissez une adresse IP statique pour mon pi.
  • Configurer un service DNS dynamique et installer le logiciel sur mon pi. J'ai fait référence à ces instructions pour configurer l'ip statique, et il existe de nombreuses autres ressources pédagogiques.

De plus, j'ai configuré le transfert de port sur mon routeur pour héberger un site Web et j'avais même le port de transfert de port 22 vers l'adresse IP statique de mon pi pour ssh, mais j'ai laissé le champ vide où vous spécifiez l'application pour laquelle vous effectuez le transfert de port sur le routeur. Quoi qu'il en soit, j'ai ajouté 'ssh' dans ce champ et, VOILA! Une connexion ssh fonctionnelle de n'importe où à mon pi.

J'écrirai les paramètres de transfert de port de mon routeur.

(ApplicationTextField) _ssh (port externe) _22 (Port interne) _22 (Protocal) _Both (À l'adresse IP) _192.168.1. ### (Enabled) _checkBox

Cependant, les paramètres de transfert de port peuvent être différents pour différents routeurs, alors recherchez les directions pour votre routeur.

Maintenant, quand je suis en dehors de mon réseau domestique, je me connecte à mon pi en tapant:

ssh pi @ [nom d'hôte]

Ensuite, je peux saisir mon mot de passe et me connecter.

ekwaters
la source
109

Si vous êtes sur Mac, le redémarrage du répondeur DNS a résolu le problème pour moi.

sudo killall -HUP mDNSResponder
Mo Bitar
la source
J'avais également besoin de ping, nslookup et de creuser le domaine. Je ne sais pas lequel de ceux-ci a aidé. Peut-être que juste attendre aidé.
Samizdis
a fonctionné pour moi aussi ... ce problème a commencé après le redémarrage de mon mac ... je ne sais pas ce qui a gâché pendant le démarrage
murli
1
Je suis également curieux de savoir pourquoi cela fonctionne ... et ce qui cause le problème en premier lieu.
mystic cola le
Si cela nslookupfonctionne, mais que ssh / ping / quoi que ce soit ne fonctionne pas, cela résout le problème. Merci.
Erik B le
93

J'ai eu le même problème de connexion à une machine distante. mais j'ai réussi à me connecter comme ci-dessous:

ssh -p 22 myName@hostname

ou:

ssh -l myName -p 22 hostname
tokhi
la source
1
enfin ça marche! il doit y avoir un bogue avec la syntaxessh myName@hostname:myPort
Edoardo
10

Si vous avez besoin d'accéder à votre VPN de n'importe où dans le monde, vous devez enregistrer un nom de domaine et le faire pointer vers l'adresse IP publique de votre VPN / passerelle réseau. Vous pouvez également utiliser un service DNS dynamique pour connecter un nom d'hôte à votre adresse IP publique.

Si vous avez uniquement besoin de ssh de votre Mac vers votre Raspberry à l' intérieur de votre réseau local , procédez comme suit: Sur votre Mac, modifiez /etc/hosts. En supposant que le Raspberry a le nom d'hôte "berry" et l'ip "172.16.0.100", ajoutez une ligne:

# ip           hostname
172.16.0.100   berry

Maintenant: ssh user@berrydevrait fonctionner.

Grebneke
la source
En plus de ce qui précède, j'ai utilisé "windows-cmd" pour apprendre à connaître ip pour mon serveur-url. J'ai fait "ping url", pour obtenir l'IP. et par conséquent, ajouté l'IP et la paire d'URL dans "/ etc / hosts". Cela fonctionne parfaitement là après (git pull, etc.)!
parasrish
9

J'ai eu le même problème, que j'ai pu résoudre en ajoutant un .local au nom d'hôte, ala ssh [email protected]

horcle_buzz
la source
Cela l'a fait pour moi. ping $(hostname)fonctionnait mais doit faire ssh $(hostname).local. Mac est généralement génial ... mais quand ça craint, c'est vraiment le cas ...
javadba
J'ai un autre problème: hadoopdoit faire ssh user@hostnameet je ne peux pas simplement ajouter .localmanuellement. Je suis coincé
javadba
L'ajout l'a .localfait pour moi sur Ubuntu 19.10.
prkos le
5

Dans mon cas, j'essayais ssh comme ça

ssh [email protected]:22 

lorsque le format correct est:

ssh [email protected] -p 22 
Pedro
la source
1
Wow - était coincé pour toujours avec la redirection de port! Ceci est le texte sacré.
congelé le
4

Si votre commande est:

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

Vous serez également confronté à la même erreur

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

quand vous manquez l'option -i /path/to/pemfilede ssh

La commande devrait donc être:

$ ssh -p 1122 -i path/to/pemfile user@[hostip/hostname]
karthik v
la source
Je n'ai pas utilisé les options pemfile mais toujours connecté en utilisantssh -p xxxx user@hostname
Yoku
4

J'avais besoin de me connecter au serveur Amazon distant

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

J'obtenais l'erreur suivante.

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

Solution pour Mac OSX

Le ping de l'hôte a résolu le problème. J'utilise Mac OSX Seirra.

ping hostname.com

Maintenant problème résolu. Capable de se connecter au serveur.

Remarque : j'ai également essayé cette solution . Mais ça n'a pas marché. Puis pingrésolu le problème.

mythique codeur
la source
3

J'ai eu le même problème: l'adresse indiquée dans Préférences -> Partage -> Connexion à distance ne fonctionnait pas et j'ai obtenu un '... nom de nœud ni nom de service fourni, ou inconnu'. Cependant, lorsque j'ai modifié manuellement les paramètres (dans Préférences -> Partage -> Connexion à distance -> modifier) ​​et activé "Utiliser le nom d'hôte global dynamique", cela a soudainement fonctionné.

entrez la description de l'image ici

entrez la description de l'image ici


la source
3

Il semble que certaines applications ne liront pas les liens symboliques /etc/hosts(au moins sur macOS), vous devez le lier en dur .

ln /path/to/hosts_file /etc/hosts

Andrei Vaduva
la source
2

Cela m'arrivait en essayant d'accéder à Github. Le problème est que j'avais l'habitude de faire:

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

Mais, si vous rencontrez cette erreur de la question, la suppression ssh:\\peut résoudre le problème. Ça l'a résolu pour moi!

Notez que vous devrez faire un git remote remove <xyz>et rajouter l'url distante sans ssh:\\.

Monkpit
la source
1
Avez-vous vraiment utilisé ssh:\\plutôt que ssh://?
Radon Rosborough
@RadonRosborough C'était il y a quelque temps maintenant ... donc, je ne suis pas sûr. Pourrait avoir! :)
Monkpit
1

Pour moi, le problème était une faute de frappe sur mon ~/.ssh/configfichier. J'ai eu:

Host host1:
  HostName 10.10.1.1
  User jlyonsmith

Le problème était l' :après host1- il ne devrait pas être là. sshne donne aucun avertissement pour les fautes de frappe dans le ~/.ssh/configfichier. Lorsqu'il ne trouve pas, host1il recherche la machine localement, ne peut pas le trouver et imprime le message d'erreur cryptique.

jlyonsmith
la source
0

Essayez ceci, en tenant compte de vos ports autorisés. Stockez votre .pemfichier dans votre Documentsdossier par exemple.

Pour y accéder maintenant, tout ce que vous avez à faire est de cd [directory]vous déplacer vers le répertoire du fichier attribué. Vous pouvez d'abord taper ls, pour lister le contenu du répertoire dans lequel vous vous trouvez actuellement:

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

J'ai eu cette erreur en utilisant un fichier d'inventaire .yml dans ansible qui n'était pas correctement formaté. Pour plusieurs hôtes dans un groupe, chaque nom d'hôte doit se terminer par un deux-points ":". Sinon, ansible exécute les noms d'hôte ensemble et produit cette erreur ssh.

Steve Yount
la source