.ssh / config의 정규 표현식


12

직장에서 종종 일반적인 이름 지정 체계 (예 : qc01- qc12, hc01- hc10등) 를 따르는 호스트에 로그인해야합니다 . 이것들은 모두 내 랩톱에서 동일한 구성 값을 가져와야합니다 .ssh/config. 물론, 내가 호스트에 대한 항목을 사용할 수 qc*하고 hc*, 대신이 정규 표현식을 사용하는 것이 어떻게 든 할 수 있는지 궁금 해요?

답변:




3

에서 정규 표현식을 모두 사용할 수 있습니다 ssh_config.

관련 문서는 읽고 이해하기 어려운 IMO입니다. 나는 13 년 이상의 Linux 경험과 8 년 이상의 경험을 가지고 있기 때문에 그것을 이해합니다 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것이 올바르게 구현되었는지 여부를 정확하게 보여줍니다 .


0

Trevor의 답변 연장 :

더 복잡한 호스트 매칭 같이 또한 가능 foo123.123하고 foo10.10하나의 규칙에 WITHOUT 사용한 호스트에 대한 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을 통해 올바른 포트에 연결합니다. 이렇게하면 개별 항목을 만들지 않고 호스트 범주에 대한 사전 설정 을 만들 수 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.