여러 SSH 명령을 함께 문자열로 연결하지만 원격 호스트에 도달할 때까지 DNS 조회를 지연합니다.

여러 SSH 명령을 함께 문자열로 연결하지만 원격 호스트에 도달할 때까지 DNS 조회를 지연합니다.

server A인터넷에 노출된 SSH 서버를 통해 집에서 직장의 서버( )에 연결할 수 있습니다 .

server C에서 직접 액세스할 수 없는 다른 사무실( )에 있는 서버에서 명령을 실행해야 합니다 server A.

그러나 접속이 가능한 중간서버( server B) 가 존재하며 server A, 그로부터 server C접속이 가능하다.

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

다음과 같이 ssh를 사용하여 원격 서버에서 명령을 실행할 수 있다는 것을 알고 있습니다.

ssh hostname command

따라서 여러 SSH 명령을 함께 연결하려고 시도했습니다.

ssh server_A ssh server_B ssh server_C command

그러나 오류가 발생합니다.

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

이는 DNS 조회가 원격 서버가 아닌 로컬에서 발생하고 있음을 시사하는 것 같습니다.

메모:

내 로컬 DNS 서버가 확인할 수 있는 호스트를 사용하여 여러 SSH 명령을 함께 연결해 보았더니 제대로 작동했습니다. 즉, DNS 조회 문제를 해결할 수 있다면 원하는 것을 달성할 수 있을 것입니다.

질문:

여러 SSH 명령을 함께 문자열로 묶으면서 다음 명령이 실행될 원격 서버에서만 이름 조회가 발생하도록 하려면 어떻게 해야 합니까?

답변1

내가 알 수 있는 한 이름 확인은 리모콘에서 수행됩니다.

  • /etc/hosts클라우드에 있는 내 서버에 이름을 지정하도록 내 로컬 설정
  • ping server로컬 DNS 확인이 작동하도록 서버에 ping을 보냅니다.
  • ssh server ping server라고ping: unknown host server
  • ssh server ssh server라고ssh: Could not resolve hostname server: Name or service not known

따라서 문자열에 있는 명령의 이름 확인은 로컬로 수행되지 않습니다. 주소를 얻을 수 없다면 원격 호스트 자체가 이름을 확인할 수 없기 때문입니다. 자신을 설득하려면 serverA에서 SSH 프롬프트를 시작하고 serverB(또는 다른 것)를 해결할 수 있는지 확인하십시오 ping.

관련 정보