주어진 호스트 이름에 대한 OpenSSH 비활성화 ControlMaster


20

OpenSSH_5.9p1, OpenSSL 0.9.8r 8 Feb 2011Mac OS X Snow Leopard와 함께 사용 하고 있습니다. 나는 한 ControlMaster지속적인 연결을 유지하도록 구성되어 있습니다. 나는 ~/.ssh/config다음을 가지고있다 :

Host *
  ControlPath /ms/%r@%h:%p
  ControlMaster auto
  ControlPersist 4h

Host *.unfuddle.com
  ControlMaster no

그러나 내가 보는 것에서-unfuddle.com 호스트에 SSH를 사용하려고 할 때도 항상 마스터 연결이 생성됩니다.

[andrey-mbp ~] $ ssh -v git@droolit.unfuddle.com
OpenSSH_5.9p1, OpenSSL 0.9.8r 2011 년 2 월 8 일
debug1 : 구성 데이터 읽기 /Users/akhkharu/.ssh/config
debug1 : /Users/akhkharu/.ssh/config 라인 1 : *에 대한 옵션 적용
debug1 : /Users/akhkharu/.ssh/config 라인 6 : * .unfuddle.com에 옵션 적용
debug1 : 구성 데이터 읽기 /usr/local/Cellar/openssh/5.9p1/etc/ssh_config
debug1 : 자동 mux : 기존 마스터 시도
debug1 : 제어 소켓 "/ms/git@droolit.unfuddle.com:22"가 존재하지 않습니다
debug1 : droolit.unfuddle.com [174.129.5.196] 포트 22에 연결.
debug1 : 연결이 설정되었습니다.
debug1 : 신원 파일 /Users/akhkharu/.ssh/id_rsa 유형 1
debug1 : 신원 파일 /Users/akhkharu/.ssh/id_rsa-cert type -1
debug1 : 신원 파일 /Users/akhkharu/.ssh/id_dsa 유형 2
debug1 : 신원 파일 /Users/akhkharu/.ssh/id_dsa-cert type -1
debug1 : 신원 파일 /Users/akhkharu/.ssh/id_ecdsa 유형 -1
debug1 : 신원 파일 /Users/akhkharu/.ssh/id_ecdsa-cert type -1
debug1 : 원격 프로토콜 버전 2.0, 원격 소프트웨어 버전 OpenSSH_5.8
debug1 : 일치 : OpenSSH_5.8 pat OpenSSH *
debug1 : 프로토콜 2.0에 대한 호환성 모드 사용
debug1 : 로컬 버전 문자열 SSH-2.0-OpenSSH_5.9
debug1 : SSH2_MSG_KEXINIT가 전송되었습니다.
debug1 : SSH2_MSG_KEXINIT가 수신되었습니다
debug1 : kex : 서버-> 클라이언트 aes128-ctr hmac-md5 없음
debug1 : kex : 클라이언트-> 서버 aes128-ctr hmac-md5 없음
debug1 : SSH2_MSG_KEX_ECDH_INIT 전송
debug1 : SSH2_MSG_KEX_ECDH_REPLY 예상
debug1 : 서버 호스트 키 : RSA a6 : 74 : 33 : 36 : 95 : 31 : 6e : a6 : d7 : 71 : 87 : b8 : 3c : 38 : e2 : 60
debug1 : 호스트 'droolit.unfuddle.com'이 알려져 있으며 RSA 호스트 키와 일치합니다.
debug1 : /Users/akhkharu/.ssh/known_hosts:390에서 키를 찾았습니다.
debug1 : ssh_rsa_verify : 서명이 올바른
debug1 : SSH2_MSG_NEWKEYS가 전송되었습니다.
debug1 : SSH2_MSG_NEWKEYS 예상
debug1 : SSH2_MSG_NEWKEYS 수신
debug1 : 서버에서 로밍을 허용하지 않음
debug1 : SSH2_MSG_SERVICE_REQUEST가 전송되었습니다.
debug1 : SSH2_MSG_SERVICE_ACCEPT를 받았습니다
debug1 : 계속할 수있는 인증 : 공개 키
debug1 : 다음 인증 방법 : 공개 키
debug1 : RSA 공개 키 제공 : /Users/akhkharu/.ssh/id_rsa
debug1 : 서버에서 키 승인 : pkalg ssh-rsa blen 277
debug1 : 인증 성공 (공개 키)
droolit.unfuddle.com에 인증되었습니다 ([174.129.5.196] : 22).
debug1 : 멀티 플렉스 마스터 소켓 설정
debug1 : 채널 0 : 새로운 [/ms/git@droolit.unfuddle.com:22]
debug1 : control_persist_detach : 백그라운드 마스터 프로세스
debug1 : 백그라운드로 분기
debug1 : 대화식 세션을 시작합니다.
debug1 : 멀티플렉싱 제어 연결
debug1 : 채널 1 : 새로운 [mux-control]
debug1 : 채널 2 : 새로운 [클라이언트 세션]
debug1 : 원격 : 강제 명령.
debug1 : 원격 : 포트 전달이 비활성화되었습니다.
debug1 : 원격 : X11 전달이 비활성화되었습니다.
debug1 : 원격 : 에이전트 전달이 비활성화되었습니다.
debug1 : 원격 : Pty 할당이 비활성화되었습니다.
debug1 : 원격 : 강제 명령.
debug1 : 원격 : 포트 전달이 비활성화되었습니다.
debug1 : 원격 : X11 전달이 비활성화되었습니다.
debug1 : 원격 : 에이전트 전달이 비활성화되었습니다.
debug1 : 원격 : Pty 할당이 비활성화되었습니다.
debug1 : mux_client_request_session : 마스터 세션 ID : 2
PTY 할당 요청 실패
SSH_ORIGINAL_COMMAND 필요
debug1 : client_input_channel_req : 채널 2 rtype 종료 상태 응답 0
debug1 : client_input_channel_req : 채널 2 rtype eow@openssh.com 답글 0
debug1 : 채널 2 : 무료 : 클라이언트 세션, nchannels 3
debug1 : 채널 1 : 비어 있음 : mux-control, nchannels 2
droolit.unfuddle.com에 대한 공유 연결이 닫혔습니다.
[andrey-mbp ~] $ ll / ms /
총 0
srw ------- 1 akhkharu 관리자 0B Jul 17 11:55 git@droolit.unfuddle.com : 22

고마워,
안드레이

답변:


19

당신의 *호스트 스탠자는 그것을 잡고있다. 보다 구체적인 호스트 스탠자를 더 일찍 넣으십시오.


고마워,하지만 그것은 나를 위해 작동하지 않습니다. 모든 호스트에 ControlMaster를 활성화해야하지만 unfuddle.com에는 사용할 수 없습니다. 구성 파일에서 사용하는 모든 호스트를 나열 할 수 없습니다. 작동하는 것 같습니다 unfuddle.com에 대한 규칙을 맨 처음에 배치하는 것입니다.
안드레이 Chernih

8
더 구체적인 호스트 스탠자를 더 일찍 넣었을 때?
이그나시오 바스케스-아 브람스

예, 이상하지만 작동합니다.
Andrey Chernih

나는 오랫동안 맨 페이지를 검색했지만 이상한 우선 순위입니다!
JanKanis

1
Andrey가이 대답이 옳다는 사실과 그가 동의 한 의견이 그 점을 지적한다는 사실을 알게되었을 때 죽을 때까지 궁금해 할 것입니다.
hugelysuperiorman

10

SuperUser에 대한 비슷한 질문에 대한 답변에서 설명한 것처럼 "bang"구문을 사용하여 Host *다음과 같이 원래 스탠자 에서 특정 호스트를 제외시킬 수 있습니다 .

Host * !*.unfuddle.com
    ControlPath /ms/%r@%h:%p
    ControlMaster auto
    ControlPersist 4h

내 상황 Host에서을 사용할 때 섹션 의 순서는 Host *관련이없는 것으로 나타 났지만 위의 방법은 항상 작동합니다.


5

내가 추가로 설정할 때 나를 위해 그것을 작동 ControlPathnone내에서 host연.

당신은 시도 할 수 있습니다:

Host *.unfuddle.com   
    ControlMaster no
    ControlPath none

그러면 제어 세션이 생성되지 않습니다.


내 경우에는이 작업을 수행 Host *하고 파일 끝에 섹션을 추가 하고 작동했습니다.
a3nm
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.