¿Ya no puedo usar el nombre de la máquina para iniciar sesión usando SSH en Yosemite, cómo solucionarlo?

5

desde ayer noté que ya no puedo conectarme a través de SSH al servidor SSH de mi OS X usando el siguiente comando:

User-MBP:~ user$ ssh user@user-mbp

usuario es el usuario en el servidor, user-mbp es el nombre de mi máquina, como se especifica aquí en System Preferences > Sharing :

HeescritolosiguienteenRemoteLogin:On:

  

Parainiciarsesiónenesteequipodeformaremota,escriba" usuario @ usuario-mbp ".

Pero user-mbp parece ser inalcanzable, incluso el ping no responde:

User-MBP:~ user$ ping user-mbp
ping: cannot resolve user-mbp: Unknown host

Es extraño porque antes pude conectar escribiendo user-mbp , lo recuerdo. También OS X me está diciendo que use ese nombre de host para la conexión SSH en System Preferences > Sharing , como dije.

Pensé que tal vez algo había estropeado el DNSResolver, aunque no tocara nada, así que probé los siguientes comandos tomados de la publicación DNS no se resuelve en Mac OS X :

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

Pero no ayudaron, así que estoy escribiendo este post. Tengo Yosemite 10.10.4 instalado. Además, recientemente he instalado Little Snitch, ahora lo he desinstalado, ¿quizás sea por eso?

¿Qué puedo hacer para volver a habilitar mi nombre de host y hacer que sea accesible de nuevo? (Sé que puedo conectarme a la máquina utilizando la dirección local del servidor, pero quiero usar user-mbp porque la IP de LAN está asignada dinámicamente).

Gracias por la atención!

Edición 1:

Todavía no se resolvió. También intenté restaurar mi sistema a un estado anterior cuando todo funcionaba (arranqué el sistema en modo de recuperación (Cmd + R) y lo restauré desde una copia de seguridad de Time Machine (el servidor SSH que se supone que es el usuario-mbp se ejecuta en una MacBook Pro)), ¡pero ya no funciona! ¿Ahora empiezo a pensar que quizás sea un problema del enrutador que estoy usando? ¿Podría ser posible?

Editar 2 :

Aquí está la salida de dig user-mbp.local emitida en el lado del cliente:

; <<>> DiG 9.8.3-P1 <<>> user-mbp.local
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 21043
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;user-mbp.local.        IN  A

;; AUTHORITY SECTION:
.           10800   IN  SOA a.root-servers.net. nstld.verisign-grs.com. 2015072802 1800 900 604800 86400

;; Query time: 169 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Tue Jul 28 23:53:27 2015
;; MSG SIZE  rcvd: 109

Hay un NXDOMAIN, por lo que el nombre de host parece no existir ...

Edición 3:

Aquí está el contenido de resolver.conf:

#
# Mac OS X Notice
#
# This file is not used by the host name and address resolution
# or the DNS query routing mechanisms used by most processes on
# this Mac OS X system.
#
# This file is automatically generated.
#
domain Home
nameserver 192.168.1.1

daniel Azuelos me recomendó que eliminara la línea "Inicio del dominio" cuando estábamos chateando, pero parece que cada vez que eliminas esa línea, vuelve a aparecer automáticamente ...

Editar 4 :

Aquí están los comandos klanomath sobre:

user-mbp:~ user$ dig _services._dns-sd._udp.local ptr @192.168.1.2 -p 5353

; <<>> DiG 9.8.3-P1 <<>> _services._dns-sd._udp.local ptr @192.168.1.2 -p 5353
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48322
;; flags: qr aa; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;_services._dns-sd._udp.local.  IN  PTR

;; ANSWER SECTION:
_services._dns-sd._udp.local. 10 IN PTR _ssh._tcp.local.
_services._dns-sd._udp.local. 10 IN PTR _sftp-ssh._tcp.local.

;; Query time: 1 msec
;; SERVER: 192.168.1.2#5353(192.168.1.2)
;; WHEN: Wed Jul 29 21:44:37 2015
;; MSG SIZE  rcvd: 94

192.168.1.2 es la IP del servidor SSH.

user-mbp:~ user$ dns-sd -B _ssh._tcp local
Browsing for _ssh._tcp.local
DATE: ---Wed 29 Jul 2015---
21:46:39.034  ...STARTING...
Timestamp     A/R    Flags  if Domain               Service Type         Instance Name
21:46:39.035  Add        2   6 local.               _ssh._tcp.           User’s MacBook Pro

Supongo que Bonjour está configurado correctamente, ¿no?

Sin embargo, la corrección temporal dns-sd -R user-mbp _ssh._tcp. local 22 parece no funcionar:

user-mbp:~ user$ dns-sd -R user-mbp _ssh._tcp. local 22
Registering Service user-mbp._ssh._tcp..local port 22
DATE: ---Wed 29 Jul 2015---
21:51:47.238  ...STARTING...
21:51:48.048  Got a reply for service user-mbp._ssh._tcp.local.: Name now registered and active

^C
user-mbp:~ user$ ssh user@user-mbp
ssh: Could not resolve hostname user-mbp: nodename nor servname provided, or not known
    
pregunta user3019105 27.07.2015 - 11:19

2 respuestas

3

En la configuración de su red local, todos los servicios dependen en gran medida de un servicio Bonjour que funcione correctamente (dns-sd), porque no tiene un servicio de nombres de dominio local.

Para detectar servicios dns-sd propagados de un host, use el siguiente comando (reemplace "ip-address" a continuación por la dirección IP de su Mac llamada user-mbp; use ifconfig -a en esa Mac para obtenerla) :

dig _services._dns-sd._udp.local ptr @ip-address -p 5353

La salida de excavación de un servicio Bonjour que funciona bien de un host se ve así:

; <<>> DiG 9.8.5-P1 <<>> _services._dns-sd._udp.local ptr @192.168.177.9 -p 5353
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37167
;; flags: qr aa; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;_services._dns-sd._udp.local.  IN  PTR

;; ANSWER SECTION:
_services._dns-sd._udp.local. 10 IN PTR _ssh._tcp.local.
_services._dns-sd._udp.local. 10 IN PTR _sftp-ssh._tcp.local.

;; Query time: 4 msec
;; SERVER: 192.168.177.9#5353(192.168.177.9)
;; WHEN: Wed Jul 29 02:00:16 CEST 2015
;; MSG SIZE  rcvd: 94

Como puede ver, solo tengo un servicio habilitado: ssh (+ sftp-ssh)

Para detectar y obtener los nombres de todos los hosts locales que brindan un servicio especial (en mi ejemplo ssh, busque más servicios aquí ) utilizar:

dns-sd -B _ssh._tcp local

Si desea omitir la detección después de un tiempo, simplemente ingrese ctrl C .

Mi salida:

Browsing for _ssh._tcp.local
Timestamp     A/R Flags if Domain     Service Type              Instance Name
2:51:05.778  Add     2  4 local.      _ssh._tcp.                MyMac

Si no obtiene resultados similares, su dns-sd está roto y todas las demás herramientas como ping, nslookup (y, en consecuencia, todas las herramientas que dependen de ssh) no funcionarán en su espacio de nombres ya que no tiene un servidor DNS local como alternativa. El servidor DNS de su enrutador (generalmente un servidor de almacenamiento en caché solo de DNS), así como los servidores DNS de su ISP y los servidores raíz superiores no saben nada sobre su red local y espacio de nombres.

Para solucionar esto temporalmente (verifique man dns-sd ) lo siguiente, ejecutado en user-mbp, debería funcionar:

dns-sd -R user-mbp _ssh._tcp. local 22

Incluso puede propagar un usuario y una contraseña (no lo probé y no sé cómo debería funcionar o qué tan seguro es):

dns-sd -R user-mbp _ssh._tcp. local 22 u=<username> p=<password>

Para solucionar esto de forma permanente, primero actualice a 10.10.4 con Combo Updater, verifique la configuración del dominio de búsqueda del servidor DHCP de su enrutador, elimine todos los cachés (por ejemplo, con Onyx o Yosemite Cache Cleaner), use un nombre * .local (por ejemplo, user-mbp.local en lugar de user-mbp) donde sea apropiado (por ejemplo, Prefs de uso compartido, shell), don 't use "local" como dominio de búsqueda en las preferencias de su red y luego repare su servicio Bonjour con varias respuestas proporcionadas aquí en stackexchange o si nada le ayuda a configurar dnsmasq .

P.S. Siempre debe usar el nombre completo de Bonjour (por ejemplo, user-mbp.local) para dirigirse a un host / dispositivo local usando dns-sd. La razón para hacerlo es la siguiente:

Muchos enrutadores proporcionan un dominio de búsqueda para una configuración más fácil si el DHCP a bordo está habilitado o si se propaga un nombre de dominio específico de conexión ISP. Ejemplos: el dominio de búsqueda predeterminado de mi Fritz! Box es "fritz.box", el dominio de búsqueda predeterminado para algunos enrutadores DLink parece ser "local".

Si su Mac usa DHCP para asignar una IP, el dominio de búsqueda predeterminado también se aplicará. En mi caso, el comando "myothermac" agrega automáticamente ".fritz.box" y el host myothermac.fritz.box será detectado. Si no tiene un servidor DNS en su red local con una zona primaria "fritz.box". conteniendo un host con el nombre "myothermac", el comando ping myothermac fallará. A diferencia de ping myothermac.local , que debería funcionar si Bonjour está configurado correctamente.

Dado que la mayoría de los enrutadores no son compatibles con Bonjour, cambie cualquier configuración de dominio de búsqueda predeterminada que contenga "* .local" o "local" o, aparentemente, algunos enrutadores DLink con un dominio de búsqueda vacío a algo más como "happy.home" para evitar Cualquier conflicto con el servicio de Bonjour.

    
respondido por el klanomath 29.07.2015 - 03:19
2

Agregue .local al nombre de su máquina.

Si eso funciona, y no quieres tener que hacerlo, en Preferencias del sistema > Red > (Interfaz) > Avanzado > DNS > Busca dominios, agrega ".local".

    
respondido por el Harv 28.07.2015 - 22:26

Lea otras preguntas en las etiquetas