
.ssh/config 파일을 사용하여 하위 도메인의 특정 부분을 기반으로 사용자 이름을 적절하게 설정합니다. 예:
Host *widgetshop.com*
User foobar
ControlMaster auto
ControlPath ~/.ssh/socket-%r@%h:%p
Host *
ControlMaster auto
ControlPath ~/.ssh/socket-%r@%h:%p
다음과 같이 쓰면 작동합니다.
ssh foo.widgetshop.com
하지만 다음과 같이 쓰면 작동하지 않습니다.
ssh foo
검색 경로 확인 시 동일한 fqdn이 됩니다.
SSH를 호출하기 전에 단축 이름을 확장하는 방법이나 대체 접근 방식이 있는 사람이 있나요?
답변1
아마도 다음 명령을 사용할 수 있습니다 host
.
ssh $(host -t A foo | cut -f1 -d" ")
이를 쉘 스크립트에 넣고("foo"를 "$1"로 대체) ssh를 실행합니다.
답변2
OpenSSH 6.5부터는 CanonicalizeHostname
ssh_config의 옵션을 사용하여 이 작업을 수행할 수 있습니다. 다음은 원하는 작업을 수행하는 예입니다.
CanonicalizeHostname yes
CanonicalDomains widgetshop.com
Host *.widgetshop.com
User foobar
답변3
ssh_config 맨페이지는 이에 대한 답변입니다:
호스트는 명령줄에 제공된 호스트 이름 인수입니다(즉, 이름은 일치하기 전에 정규화된 호스트 이름으로 변환되지 않습니다).
즉, 그런 식으로 작동하지 않기 때문에 작동하지 않습니다.
답변4
내 "대체 접근 방식"을 참조하세요)
mbp:~ alexus$ grep f9 /etc/hosts
XX.XXX.XX.XXX f9
mbp:~ alexus$ ssh f9 hostname
f9.XXX.org
mbp:~ alexus$