SSH 호스트 이름의 IP를 찾는 방법

SSH 호스트 이름의 IP를 찾는 방법

HostName명령줄의 SSH 구성에서 IP를 검색하는 쉬운 방법이 있습니까? 여러 번 scp컴퓨터를 사용해야 하고 연결하고 싶지만 호스트 이름만 기억합니다.

답변1

host그 자체로 명령줄에 제공된 매개변수를 ssh_config 항목에 매핑하는 것은 쉽습니다 .hostnamessh

실제로 연결하지 않고도 명령줄 구성에 사용할 내용을 평가하고 인쇄하도록 요청할 수 있습니다. 그런 다음 나열된 내용을 추출하기만 하면 됩니다 hostname(구성 키 이름을 소문자로 변환하여 정규화한다는 점에 유의하세요). 간단한 예는 다음과 같습니다:

ssh -G database | awk '/^hostname / { print $2 }'

.ssh/config에 다음이 포함된 경우:

Host database
Hostname database.example.com

이 출력됩니다 database.example.com.

ping을 수행하려면 물론 출력을 평가하고 이를 매개변수로 사용할 수 있습니다.

ping $(ssh -G database | awk '/^hostname / { print $2 }')

답변2

~/.ssh/configscp는 합계를 읽습니다 /etc/ssh/ssh_config. SSH 구성에서 호스트 별칭 중 하나를 scp하는 한 작동합니다.

이것은 짧은 답변처럼 보이므로 SSH 구성으로 수행할 수 있는 작업에 대한 추가 정보는 다음과 같습니다.

다음은 SSH 구성 파일의 일부 고급 기능을 설명하는 기사입니다.http://magazine.redhat.com/2007/11/27/advanced-ssh-configuration-and-tunneling-we-dont-need-no-stinking-vpn-software/

http 프록시를 통해 ssh/scp 터널을 설정해야 합니까? 문제 없습니다. 여기에 설명된 단계를 따르세요.http://www.mtu.net/~engstrom/ssh-proxy.php

ProxyCommand 옵션의 또 다른 용도:http://jasonmc.wordpress.com/2008/04/16/ssh-magic/

답변3

이렇게 할 필요는 없습니다scpssh, 그러나 디버그 추적을 사용할 수 있습니다 .

ssh -v HostName ' ' 2>&1 | grep '^debug1: Connecting to'

답변4

일반적으로 이렇게 하면 host HostNameIP 주소를 얻을 수 있습니다.

설치되어 있지 않은 경우 host(설치되어 있어야 함) nslookup HostName 8.8.8.8이를 사용하여 조회에 Google DNS 서버를 사용할 수 있습니다.

이러한 작업을 수행하려면 컴퓨터의 확인자가 올바른 구성(/etc/resolv.conf 파일, 아마도 /etc/nsswitch.conf)을 가지고 있거나 호스트, 도메인 이름을 포함한 "정규화된 도메인 이름"을 사용해야 합니다. 및 "TLD"(.org, .com, .net 등과 같은 접미사).

관련 정보