desde ayer he notado 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
user es el usuario en el servidor, user-mbp es el nombre de mi máquina, como se especifica aquí en System Preferences > Sharing
:
Tengo lo siguiente escrito debajo Remote Login: On
:
Para iniciar sesión en esta computadora de forma remota, 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 me podía conectar escribiendo user-mbp
, lo recuerdo. También OS X me dice que use ese nombre de host para la conexión SSH en System Preferences > Sharing
, como dije.
Pensé que tal vez algo estropeó el DNSResolver, incluso si no toqué 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 esta publicación. Tengo Yosemite 10.10.4 instalado. Además, recientemente instalé Little Snitch, ahora lo desinstalé, ¿tal vez sea por eso?
¿Qué puedo hacer para volver a habilitar mi nombre de host y que sea accesible nuevamente? (Sé que puedo conectarme a la máquina usando la dirección local del servidor, pero quiero usar user-mbp
porque la IP de LAN se asigna 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 (inicié el sistema en modo de recuperación (Cmd+R) y restauré desde una copia de seguridad de Time Machine (el servidor SSH que se supone que es usuario-mbp se ejecuta en un MacBook Pro)), ¡pero ya no funciona! ¿Ahora empiezo a pensar que tal vez sea un problema del enrutador que estoy usando? ¿Podria ser posible?
Edición 2 :
Aquí está el resultado de dig user-mbp.local
emitido 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 resolve.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 aconsejó que quitara la línea "domain Home" cuando estábamos chateando pero parece que cada vez que quitas esa línea vuelve a aparecer automáticamente...
Edición 4 :
Estos son los comandos sobre los que escribió klanomath :
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 solució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
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 los 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; utilícela 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 puedes 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í ) use:
dns-sd -B _ssh._tcp local
Si desea omitir la detección después de un tiempo, simplemente ingrese ctrlC.
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 eso como ssh) no funcionarán en su espacio de nombres ya que no tiene un DNS local -servidor como alternativa. El servidor DNS en su enrutador (generalmente un servidor de almacenamiento en caché 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 (marque 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 probé eso 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, usuario -mbp.local en lugar de user-mbp) cuando corresponda (por ejemplo, compartir preferencias, shell), no use "local" como dominio de búsqueda en sus preferencias de red y luego repare su servicio Bonjour con varias respuestas proporcionadas aquí en stackexchange o si nada ayuda alternativamente a configurar dnsmasq .
PD: siempre debe usar el nombre completo de Bonjour (por ejemplo, usuario-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 sencilla si el DHCP incorporado está habilitado o propagan un nombre de dominio específico de la 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, también se aplicará el dominio de búsqueda predeterminado. En mi caso, hacer ping a "myothermac" agrega automáticamente ".fritz.box" y se probará el host myothermac.fritz.box. Si no tiene un servidor DNS en su red local con una zona principal "fritz.box". que contenga 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 conscientes de 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 "feliz.casa" para evitar conflictos con el servicio Bonjour.
Agregue .local al nombre de su máquina.
Si eso funciona, y no quiere tener que hacerlo, en Preferencias del sistema > Red > (Interfaz) > Avanzado > DNS > Dominios de búsqueda, agregue ".local".
user-mbp.local
pero me sigue saliendo ssh: Could not resolve hostname
, lo curioso es que antes pude conectarme por medio user-mbp
... ¿Será problema del router? ¿Algo más que pueda hacer?user-mbp:~ user$ hostname
da user-mbp como debería. De hecho, el nombre de host en el servidor es user-mbp
, incluso scutil --get HostName
devuelve user-mbp . Es realmente extraño, ¿no?user-mbp
es el nombre de host de la IP DHCP del servidor.nslookup user-mbp
escribo obtengo un NXDOMAIN, pero si escribo nslookup xxx.xxx.xxx.xxx
donde xxx.x... es la IP del servidor, en la LAN obtengoname = User-MBP.
.local.
al nombre de su máquina". (Observe el punto final, .
, que le dice a todos los programas que este es el nodo raíz y se asegura de que no buscará mbp-user.local.other.search.domain.
sino solo mbp-user.local.
).
dan
Terminal
comandohostname
.usuario3019105
hostname
regresauser-mbp
, lo que quiero decirwhen everything works
es que pude ejecutarssh user@user-mbp
y funcionó. Eso fue justo antes de instalar Little Snitch. Incluso aquí, algo gracioso, he restaurado el sistema a ese estado (cuando todo funcionaba) pero resultó ser un estado en el que "se suponía que todo funcionaba", porque todavía no funciona. Espero haber sido claro. ¿Qué podría ser?dan
usuario3019105
user-mbp
ejecuta en una MacBook Pro)dan
dan
usuario3019105
dan
cuadrado
usuario3019105
user-mbp
, ¿puedo forzar una transmisión del nombre de host desde el servidor?dan
searchdomain Home
en el/etc/resolv.conf
deuser-mbp
.Kurt Pfeifle
ping user-mbp.local.
? (Observe el punto final en.local.
!)usuario3019105
ping user-mbp.local
funciona, y puedo usar SSH, es mi máquina. Pero, ¿por quéping user-mbp
antes funcionaba y ahora ya no?Kurt Pfeifle
usuario3019105