encadena varios comandos ssh juntos, pero retrasa la búsqueda de dns hasta que esté en el host remoto

encadena varios comandos ssh juntos, pero retrasa la búsqueda de dns hasta que esté en el host remoto

Puedo conectarme desde casa a un servidor en el trabajo ( server A) a través de un servidor ssh expuesto a Internet.

Necesito ejecutar un comando en un servidor en otra oficina ( server C), al que no se puede acceder directamente desde server A.

Sin embargo, existe un servidor intermedio ( server B), al que server Ase puede acceder y desde el que server Cse puede acceder.

+------+   +----------+   +----------+   +----------+
| home |---| server A |---| server B |---| server C |
+------+   +----------+   +----------+   +----------+

Sé que puedo ejecutar un comando en un servidor remoto usando ssh de la siguiente manera:

ssh hostname command

Como tal, intenté encadenar varios comandos ssh juntos

ssh server_A ssh server_B ssh server_C command

Sin embargo, aparece un error:

ssh: Could not resolve hostname server_B: Name or service not known

Esto parece sugerir que la búsqueda de DNS se realiza localmente, en lugar de en el servidor remoto.

Nota:

Intenté encadenar varios comandos ssh usando hosts que mi servidor DNS local puede resolver, y funcionó, lo que sugiere que si puedo resolver mi problema de búsqueda de DNS, debería poder lograr lo que quiero.

Pregunta:

¿Cómo puedo encadenar varios comandos ssh, pero forzar que la búsqueda de nombres solo se realice en el servidor remoto en el que se debe ejecutar el siguiente comando?

Respuesta1

Por lo que puedo decir, la resolución de nombres se realiza en el control remoto:

  • configurar mi local /etc/hostspara darle un nombre a un servidor mío en la nube
  • ping serverhace ping al servidor para que funcione la resolución DNS local
  • ssh server ping serverdiceping: unknown host server
  • ssh server ssh serverdicessh: Could not resolve hostname server: Name or service not known

Entonces, la resolución de nombres de los comandos en las cadenas no se realiza localmente. Si no puede obtener la dirección es porque el host remoto no puede resolver el nombre. Para convencerse, inicie un mensaje SSH en el servidorA y vea si puede resolver el servidorB ( pingo de lo contrario).

información relacionada