ssh: no se pudo resolver el nombre de host [nombre de host]: nombre de servidor ni nombre de servidor proporcionados, o no se conocen

132

Estoy tratando de configurar una VPN con una Raspberry Pi, y el primer paso es obtener la capacidad de sshingresar al dispositivo desde fuera de mi red local. Por alguna razón, esto está demostrando ser imposible y no tengo la menor idea de por qué. Cuando intento sshingresar a mi servidor user@hostname, aparece el error:

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

Sin embargo, puedo iniciar sesión en el servidor con,

ssh user@[local IP]

El servidor es un Raspberry Pi Modelo B que ejecuta la última distribución de Raspbian y la máquina con la que intento conectarme es un Macbook Pro con Mavericks. sshestaba habilitado en Raspberry Pi cuando configuré Raspbian.

He examinado Stack Overflow durante horas tratando de ver si alguien más tuvo este problema y no he encontrado nada. Cada sshtutorial que encuentro dice que debería poder configurarlo en la máquina remota e iniciar sesión desde cualquier lugar usando un nombre de host, y nunca he tenido éxito con eso.

qaxf6auux
fuente
El error original apunta al problema específico: lo [hostname]que sea que esté usando no se puede resolver desde donde lo está intentando. ¿ nslookup [hostname]Te devuelve lo [local IP]que estás esperando?
admirado el
2
nslookup [hostname]escupe; Servidor: 8.8.8.8 Dirección: 8.8.8.8 # 53 ** el servidor no puede encontrar [hostname]: NXDOMAIN cuando se ejecuta desde mi Macbook
qaxf6auux
2
Solo para estar seguro: estás poniendo un nombre de host real [hostname], ¿verdad?
admirado el
Ese resultado muestra que está utilizando los servidores DNS públicos de Google, que no tienen ningún conocimiento del nombre de host que está tratando de usar. ¿Cómo está configurando exactamente los registros DNS para su nombre de host?
admirado el
2
Server: 192.168.0.1 Address: 192.168.0.1#53 ** server can't find mrddr: NXDOMAIN
Nakilon

Respuestas:

29

Recientemente me encontré con el mismo problema. Pude ssh a mi pi en mi red, pero no desde fuera de mi red doméstica.

Yo ya tenía:

  • instalado y probado ssh en mi red doméstica.
  • Establecer una IP estática para mi pi.
  • Configure un servicio DNS dinámico e instaló el software en mi pi. Hice referencia a estas instrucciones para configurar la ip estática, y hay muchos más recursos de instrucción disponibles.

Además, configuré el reenvío de puertos en mi enrutador para alojar un sitio web e incluso tuve que reenviar el puerto 22 a la IP estática de mi pi para ssh, pero dejé el campo en blanco donde especifica la aplicación para la que está realizando el reenvío de puertos el enrutador De todos modos, agregué 'ssh' en este campo y, ¡VOILA! Una conexión ssh que funciona desde cualquier lugar a mi pi.

Escribiré la configuración de reenvío de puertos de mi enrutador.

(ApplicationTextField) _ssh (puerto externo) _22 (Puerto interno) _22 (Protocal) _Both (a la dirección IP) _192.168.1. ### (habilitado) _checkBox

Sin embargo, la configuración de reenvío de puertos puede ser diferente para diferentes enrutadores, así que busque instrucciones para su enrutador.

Ahora, cuando estoy fuera de mi red doméstica, me conecto a mi pi escribiendo:

ssh pi @ [nombre de host]

Entonces puedo ingresar mi contraseña y conectarme.

ekwaters
fuente
109

Si está en Mac, reiniciar el respondedor DNS solucionó el problema para mí.

sudo killall -HUP mDNSResponder
Mo Bitar
fuente
También necesitaba hacer ping, nslookup y excavar el dominio. No estoy seguro de cuál de estos ayudó. Quizás solo esperar ayudó.
Samizdis
también funcionó para mí ... este problema comenzó después de que reinicié mi mac ... no sé qué se estropeó durante el arranque
murli
1
También tengo curiosidad por saber por qué esto funciona ... y qué está causando el problema en primer lugar.
Mystic Cola
Si nslookupfunciona, pero ssh / ping / lo que no funciona, esto soluciona el problema. Gracias.
Erik B
93

Tuve el mismo problema al conectarme a una máquina remota. pero logré iniciar sesión de la siguiente manera:

ssh -p 22 myName@hostname

o:

ssh -l myName -p 22 hostname
tokhi
fuente
1
finalmente funciona! debe haber un error con la sintaxisssh myName@hostname:myPort
Edoardo
10

Si necesita acceder a su VPN desde cualquier parte del mundo, debe registrar un nombre de dominio y hacer que apunte a la dirección IP pública de su VPN / puerta de enlace de red. También puede usar un servicio DNS dinámico para conectar un nombre de host a su IP pública.

Si solo necesita ssh desde su Mac a su Raspberry dentro de su red local , haga lo siguiente: En su Mac, edite /etc/hosts. Suponiendo que Raspberry tiene el nombre de host "berry" y la ip "172.16.0.100", agregue una línea:

# ip           hostname
172.16.0.100   berry

Ahora: ssh user@berrydebería funcionar.

grebneke
fuente
Además de lo anterior, utilicé "windows-cmd" para conocer la ip de mi servidor-url. Hice "ping url" para obtener la IP. y por lo tanto, agregó la IP y el par de URL en "/ etc / hosts". ¡Funciona perfectamente allí después (git pull, etc.)!
paradisíaca
9

Tuve el mismo problema, que pude resolver agregando un .local al nombre de host, ala ssh [email protected]

horcle_buzz
fuente
Eso lo hizo por mí. ping $(hostname)estaba funcionando pero necesito hacer ssh $(hostname).local. Mac suele ser genial ... pero cuando apesta, realmente ...
javadba
Tengo un problema adicional: es hadoopnecesario hacerlo ssh user@hostnamey no puedo simplemente agregarlo .localmanualmente. Estoy atrapado
javadba
Agregar lo .localhizo por mí en Ubuntu 19.10.
Prkos
5

En mi caso estaba intentando algo así

ssh [email protected]:22 

cuando el formato correcto es:

ssh [email protected] -p 22 
Pedro
fuente
1
¡Guau-- estaba atrapado para siempre con el reenvío de puertos! Este es el texto sagrado.
frozenOne
4

Si su comando es:

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

También te enfrentarás al mismo error

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

cuando pierdes la opción -i /path/to/pemfilede ssh

Entonces Command debería ser:

$ ssh -p 1122 -i path/to/pemfile user@[hostip/hostname]
karthik v
fuente
No utilicé las opciones de pemfile pero aún me conecté usandossh -p xxxx user@hostname
Yoku
4

Necesitaba conectarme al servidor remoto de Amazon

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

Estaba recibiendo el siguiente error.

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

Solución para Mac OSX

Hacer ping al host resolvió el problema. Estoy usando Mac OSX Seirra.

ping hostname.com

Ahora problema resuelto. Capaz de conectarse al servidor.

Nota : Probé esta solución también. Pero no funcionó. Luego pingresolvió el problema.

codificador mítico
fuente
3

Tuve el mismo problema: la dirección que se muestra en Preferencias -> Compartir -> Inicio de sesión remoto no funcionó y obtuve un '... nombre de servidor o nombre de servidor proporcionado, o no se conoce'. Sin embargo, cuando edité manualmente la configuración (en Preferencias -> Compartir -> Inicio de sesión remoto -> editar) y habilité "Usar nombre de host global dinámico", de repente funcionó.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí


fuente
3

Parece que algunas aplicaciones no leerán enlaces simbólicos /etc/hosts(al menos en macOS), debe vincularlo.

ln /path/to/hosts_file /etc/hosts

Andrei Vaduva
fuente
2

Esto me estaba sucediendo cuando intentaba acceder a Github. El problema es que tenía la costumbre de hacer:

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

Pero, si tiene este error de la pregunta, eliminar ssh:\\ puede resolver el problema. ¡Lo resolvió para mí!

Tenga en cuenta que tendrá que hacer ay git remote remove <xyz>volver a agregar la url remota sin ssh:\\.

Monkpit
fuente
1
¿Realmente usaste en ssh:\\lugar de ssh://?
Radon Rosborough
@RadonRosborough Esto fue hace un tiempo ahora ... así que no estoy seguro. ¡Podría tener! :)
Monkpit
1

Para mí, el problema era un error tipográfico en mi ~/.ssh/configarchivo. Yo tenía:

Host host1:
  HostName 10.10.1.1
  User jlyonsmith

El problema fue :después de la host1- no debería estar allí. sshno da advertencias para errores tipográficos en el ~/.ssh/configarchivo. Cuando no puede encontrar host1, busca la máquina localmente, no puede encontrarla e imprime el mensaje de error críptico.

jlyonsmith
fuente
0

Prueba esto, teniendo en cuenta tus puertos permitidos. Almacene su .pemarchivo en su Documentscarpeta, por ejemplo.

Para obtener acceso a él ahora, todo lo que tiene que hacer es cd [directory]moverlo al directorio del archivo asignado. Primero puede escribir ls, para enumerar el contenido del directorio en el que se encuentra actualmente:

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

Obtuve este error al usar un archivo de inventario .yml en ansible que no estaba formateado correctamente. Para varios hosts en un grupo, cada nombre de host debe terminar en dos puntos ":". De lo contrario, ansible ejecuta los nombres de host juntos y produce este error ssh.

Steve Yount
fuente