첫 번째 경기에서 ssh 설정 중지


18

내 .ssh 구성의 모든 호스트에 대한 로컬 프록시를 추가했지만 proxy 명령없이 로컬 vm에 셸하고 싶습니다. 내 ssh 시도의 출력 :

debug1: /Users/bbarbour/.ssh/config line 1: Applying options for local.dev
debug1: /Users/bbarbour/.ssh/config line 65: Applying options for *

다음 ssh 구성이 주어지면 ProxyCommand가 local.dev 항목에 적용되는 것을 어떻게 방지합니까?

Host local.dev
    HostName dev.myserver.com
    User developer
...
Host *
    ProxyCommand /usr/local/bin/corkscrew 127.0.0.1 8840 %h %p

답변:


22

local.dev를 ProxyCommand에서 제외 할 수 있습니다 !.

Host * !local.dev
    ProxyCommand /usr/local/bin/corkscrew 127.0.0.1 8840 %h %p

에서 ssh_config를 문서 :

둘 이상의 패턴이 제공되는 경우 공백으로 구분해야합니다.

접두사 느낌표 (`! ') 접두어로 패턴 항목을 무시할 수 있습니다 . 부정 된 항목이 일치하면 라인의 다른 패턴과 일치하는지 여부에 관계없이 호스트 항목이 무시됩니다. 따라서 부정 일치는 와일드 카드 일치에 예외를 제공하는 데 유용합니다.

문서는 또한 말했다 :

각 매개 변수에 대해 첫 번째로 얻은 값이 사용됩니다 . 구성 파일에는``호스트 ''사양으로 구분 된 섹션이 포함되어 있으며 해당 섹션은 사양에 지정된 패턴 중 하나와 일치하는 호스트에만 적용됩니다. 일치하는 호스트 이름은 명령 행에 제공된 이름입니다.

따라서 다음에 정의한 값을 재정 의하여 local.dev에 대해 ProxyCommand를 비활성화 할 수도 있습니다 Host *.

Host local.dev
    HostName dev.myserver.com
    User developer
    ProxyCommand none

8

구성 파일의 옵션은 처음 일치 할 때 적용됩니다. 호스트 항목에 ProxyCommand가 없으므로 항목의 ProxyCommand *가 사용됩니다.

이 문제를 해결하는 두 가지 방법이 있습니다.

  • proxy 명령을 사용하지 않으려는 호스트의 경우 간단히 라인을 추가하십시오
    ProxyCommand 없음
  • 를 들어 *항목, 메모 항목은 호스트에 적용하지 않아야 특별히 것을 local.dev그것을 부정으로!
    호스트! local.dev *

여러 호스트를 분리하려면 공간을 사용하십시오. 쉼표 (,)가 작동하지 않았습니다. 배급 자 ID : Ubuntu 설명 : Ubuntu 17.10 릴리스 : 17.10 코드 명 :
Aruna

감사합니다 @ArunaFromLK-나는 그것을 놓쳤다는 것을 믿을 수 없으며, 3,5 년 안에 아무도 그것을 발견하지 못했습니다! 지금 답변을 업데이트했습니다.
제니 D
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.