ssh HostName의 IP를 찾는 방법 간단한 방법이 있습니까? 여러

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



답변

scp는 ~/.ssh/configand 을 읽습니다 /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/


답변

host명령 행에 제공된 인수에서 ssh_config hostname항목으로 쉽게 맵핑 할 수 ssh있습니다.

실제로 연결하지 않고도 명령 행 구성에 사용할 항목을 평가하고 인쇄하도록 요청할 수 있습니다. 그런 다음 목록에있는 것을 꺼내기 만하면됩니다 hostname(구성 키 이름을 소문자로 변환하여 정규화 할 수 있음). 간단한 예는 다음과 같습니다.

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

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

Host database
Hostname database.example.com

인쇄됩니다 database.example.com.

핑하기 위해서는 물론 출력을 평가하고 인수로 사용할 수 있습니다.

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

답변

에 대해 그렇게 할 필요scp 는 없지만 ssh의 디버깅 추적을 사용할 수 있습니다 .

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

답변

일반적으로 할 수 host HostName있으며 IP 주소를 얻습니다.

경우 host(이 있어야한다)가 설치되지 않은, 당신이 사용할 수있는 nslookup HostName 8.8.8.8조회를 수행 할 구글 DNS 서버를 사용하는 것이다.

이러한 작업을 수행하려면 시스템의 리졸버가 올바른 구성 (파일 /etc/resolv.conf 및 아마도 /etc/nsswitch.conf에 있음)을 가지고 있거나 호스트가있는 “완전한 도메인 이름”을 사용해야합니다. domaiin 및 “TLD”(. org, .com, .net, 그런 종류의 접미사).


답변

가짜 ProxyCommand를 사용하십시오 …

$ ssh -o 'ProxyCommand echo %h>&2' mYaLiAs 2>&1 | fgrep -v ssh_exchange_id |  read actual
$ echo $actual
192.168.1.234