이건 제가 해결하고 싶은 문제는 아니지만, 예전부터 궁금했던 문제입니다.
~/.ssh/config에 여러 호스트 이름이 정의되어 있지만 다른 곳에서는 정의되어 있지 않습니다. /etc/hosts에 아무것도 정의하지 않았다는 점은 주목할 가치가 있습니다.
그러나 나는 이러한 유명한 이름을 ping할 수 있다는 것을 알았습니다. 왜 이런거야? ping 유틸리티가 ~/.ssh/config를 구체적으로 살펴보나요? 아니면 이것이 운영 체제 전반에 적용되는 것입니까? DNS와 관련이 있나요?
편집하다:
보다 구체적으로 ~/.ssh/config에 호스트가 정의되어 있습니다.
Host my_laptop
Hostname 192.168.1.3
Port 22
User myname
...동일한 로컬 네트워크에 있는 다른 컴퓨터에서 이를 얻을 수 ping my_laptop
있으며 192.168.1.3
.ping
하지만, 사용자 Kusalananda가 언급 nslookup
하고 dig
(지금까지 익숙하지 않은 두 가지 명령) nslookup my_laptop
다른 컴퓨터에서 실행하면 다음이 반환됩니다.
Server: 192.168.1.1
Address: 192.168.1.1#53
Name: my_laptop.home
Address: 192.168.1.3
192.168.1.1
은 내 홈 라우터의 주소이고 포트 53이 DNS와 관련되어 있다는 것을 알고 있습니다. 라우터 설정을 살펴본 결과 문제의 컴퓨터("my_laptop")도 로컬 네트워크에 있는 라우터의 컴퓨터 목록에서 동일한 호스트 이름으로 이름이 지정되어 있음을 발견했습니다.
따라서 내 홈 라우터도 DNS 서버이고 이 중 어느 것도 ~/.ssh/config의 항목과 관련이 없다는 것입니다. 보시다시피가능한말하자면, 저는 일반적인 네트워킹과 특히 DNS에 대해 잘 알지 못합니다. 사실 이 질문은 여기에 속하지 않을 수도 있지만 Stack Exchange의 다른 섹션에는 해당되지 않습니다.
답변1
따라서 이 동작은 ssh 구성 파일과 관련이 없습니다. 내 네트워크의 컴퓨터는 내 홈 라우터에서 실행되는 로컬 DNS 서버로부터 DNS 정보를 얻습니다. 나는 를 실행하여 이를 확인했는데 nslookup (hostname)
, 이는 컴퓨터가 실제로 문제의 호스트 이름을 확인하기 위해 내 로컬 라우터를 보고 있음을 보여주었습니다. ~/.ssh/config의 호스트 이름은 로컬 DNS 서버에서 제공하는 호스트 이름과 동일합니다.