qc01
직장에서는 - qc12
, hc01
- hc10
등과 같은 일반적인 명명 체계를 따르는 호스트에 로그인해야 하는 경우가 많습니다. 이 모든 작업은 내 노트북에서 수행되어야 합니다 .ssh/config
. 물론 호스트 qc*
와 항목을 사용할 수 있지만 hc*
정규식을 사용할 수 있는지 궁금합니다.
답변1
~처럼갤런선언된 기본값은 ssh_config
정규식을 지원하지 않지만 다음과 같은 다른 접근 방식을 시도해 볼 수 있습니다.
- Github의 고급 SSH 구성- 더 나은 정규식 엔진이 있을 수 있지만 직접 테스트해야 합니다.
- 몇 가지 해결 방법:unix.stackexchange에 대한 또 다른 질문
답변2
에서 이 작업을 수행할 수 있습니다 ssh_config
.
IMO 관련 문서는 읽고 이해하기 어렵습니다. 저는 13년 이상의 Linux 사용 경험을 갖고 있기 때문에 이를 이해합니다 ssh
. 다음은 문서 요약입니다.
man ssh_config
설명합니다Match
exec
그런 다음 임의의 쉘 명령을 사용하여 일치 항목을 결정할 수 있는 함수가 있습니다.- 임의의 쉘 명령에 입력 인수를 전달하는 것이 가능하며 다음 섹션에 설명되어 있습니다.
TOKENS
내 경우에는 결국 내~/.ssh/config
:
Match exec "echo %h | grep -q 'NAME[0-9]\+$'"
User USER
IdentityFile /path/to/identity/file
Hostname %h.fully.qualified.domain.name
테스트는 이런 까다로운 작업을 통해 이루어져야 합니다. 이 테스트를 수행하려면 을 호출하세요 ssh -vvv HOSTNAME
. 이렇게 하면 정확히 무슨 일이 일어나고 있는지, 그리고 새 콘텐츠가 Match
올바르게 구현되었는지 여부가 표시됩니다.
답변3
PATTERNS
의 섹션을 참조하세요 man ssh_config
.
ssh
긴 대답은 다음과 같습니다. 이를 지원하기 위해 패치를 하지 않으면 할 수 없습니다 .
답변4
Trevor의 답변을 확장하면 다음과 같습니다.
foo123.123
일치 및 foo10.10
하나의 규칙 과 같이 더 복잡한 호스트도 가능합니다.아니요사용된 호스트 이름이 포함된 DNS 항목:
Match exec "echo %h | grep -q 'foo[0-9]\+.[0-9]\+$'"
Port 1234 # just to show it can be paired with non-default ports too,
# see %p in man ssh_config
ProxyCommand /usr/bin/nc 10.10.$(echo %h | sed -e 's/foo//') %p
ProxyCommand를 사용하여조종하다%h의 내용은 쉘에 연결되고 netcat을 통해 올바른 포트에 연결됩니다. 이렇게 하면 만들 수 있습니다.기본호스트 범주에 대해 별도의 항목을 만들 필요가 없습니다.