encadeie vários comandos ssh juntos, mas atrase a pesquisa de DNS até o host remoto

encadeie vários comandos ssh juntos, mas atrase a pesquisa de DNS até o host remoto

Consigo me conectar de casa a um servidor no trabalho ( server A) por meio de um servidor ssh exposto à Internet.

Preciso executar um comando em um servidor em outro escritório ( server C), que não pode ser acessado diretamente do server A.

Contudo, existe um servidor intermediário ( server B), que server Apode acessar e a partir do qual server Cé acessível.

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

Eu sei que posso executar um comando em um servidor remoto usando ssh da seguinte forma:

ssh hostname command

Como tal, tentei agrupar vários comandos ssh

ssh server_A ssh server_B ssh server_C command

No entanto, recebo um erro:

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

Isso parece sugerir que a pesquisa de DNS está acontecendo localmente, e não no servidor remoto.

Observação:

Tentei agrupar vários comandos ssh usando hosts que meu servidor DNS local pode resolver, e funcionou, o que sugere que, se eu conseguir resolver meu problema de pesquisa de DNS, devo conseguir o que desejo.

Pergunta:

Como posso encadear vários comandos ssh juntos, mas forçar a pesquisa de nome a ocorrer apenas no servidor remoto no qual o próximo comando será executado?

Responder1

Pelo que sei, a resolução de nomes é feita no controle remoto:

  • configurar meu local /etc/hostspara dar um nome a um servidor meu na nuvem
  • ping serverfaz ping no servidor para que a resolução DNS local funcione
  • ssh server ping serverdizping: unknown host server
  • ssh server ssh serverdizssh: Could not resolve hostname server: Name or service not known

Portanto, a resolução de nomes dos comandos nas strings não é feita localmente. Se você não conseguir obter o endereço, é porque o próprio host remoto não consegue resolver o nome. Para se convencer, inicie um prompt SSH no servidor A e veja se ele consegue resolver o servidor B ( pingou então).

informação relacionada