HostName
명령 줄의 ssh 구성에서 IP를 검색하는 간단한 방법이 있습니까? 여러 번 사용해야 scp
하고 컴퓨터에 연결하고 싶지만 HostName 만 기억합니다.
답변
scp는 ~/.ssh/config
and 을 읽습니다 /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