OpenSSH - ~/.ssh/config의 별칭을 명령줄의 IP 주소에 매핑

OpenSSH - ~/.ssh/config의 별칭을 명령줄의 IP 주소에 매핑

명령줄에서 ~/.ssh/config를 쿼리할 수 있습니까? 별도의 프로그램에서 특정 별명이 가리키는 IP 주소를 검색하고 싶다고 가정해 보겠습니다. 이것이 가능합니까?

답변1

IP 주소(192.168.1.1)만 반환되기를 원하는 경우 이는 파일을 읽을 수 있는 적절한 권한이 있다는 가정 하에 명령줄에서 파일을 쿼리하는 (매우 취약한) 방법입니다.그리고형식 .ssh/config이 일관됩니다.

awk '/Host $youralias/ {getline; print $2}' .ssh/config


나는 이것을 사용하여 이 작업을 수행하는 방법을 이해하고 싶어서 이것을 게시하고 있지만 awk분명히 내 지식은 매우 제한적입니다.

답변2

무엇을 질문하시는지 잘 모르겠습니다...

"mainserver"에 대한 SSH 별칭이 있다고 가정하면 다음을 수행할 수 있습니다 ssh mainserver. 이 기능도 작동하게 하려면 다음과 같은 ping mainserver별칭을 추가해야 합니다 ./etc/hosts

/etc/호스트:

192.168.0.1 comp-one
192.168.0.2 comp-two

192.168.0.20 mainserver

그런 다음 이 작업을 수행 ping mainserver하면 192.168.0.20으로 ping이 발생합니다.

답변3

-G이 옵션을 사용할 수 있습니다 ssh.

-G: ssh평가 후 구성을 인쇄 Host 하고 Match차단하고 종료합니다.

따라서 이 예에서는

ssh -G $host | awk '$1 == "hostname" { print $2 }'

호스트 이름이 아닌 IP 주소가 정말로 필요한 경우 결과에서 이름 조회를 수행해야 할 수도 있지만 이를 수행하는 방법을 알고 있다고 가정합니다.

ProxyCommand예를 들어 구성이 점프 호스트를 통해 연결하도록 되어 있는 경우 이는 나가는 연결이 이루어지는 실제 호스트가 아닐 수도 있습니다.

답변4

말씀하신 파일은 다음을 포함하는 텍스트 파일입니다.CPU 이름그리고 가능하다IP 주소연결된 기계를 식별하십시오. 이 명령을 사용하여 호스트 이름을 IP 주소로 확인할 수 있습니다 host(1). 형식이 매우 단순해서 내용을 파악하는 것은 어렵지 않습니다. 파일(my States *.fedoraproject.org)에서 와일드카드를 사용할 수 있습니다.

관련 정보