OpenSSH tắt ControlMaster cho tên máy chủ đã cho


20

Tôi đang sử dụng OpenSSH_5.9p1, OpenSSL 0.9.8r 8 Feb 2011với Mac OS X Snow Leopard. Tôi có ControlMastertính năng cấu hình để duy trì các kết nối liên tục. Của tôi ~/.ssh/configcó những điều sau đây:

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

Host *.unfuddle.com
  ControlMaster no

Tuy nhiên, từ những gì tôi thấy - ngay cả khi tôi đang cố gắng sử dụng SSH cho các máy chủ của unuddle.com, kết nối chính luôn được tạo:

[andrey-mbp ~] $ ssh -v git@droolit.unfuddle.com
OpenSSH_5.9p1, OpenSSL 0.9.8r ngày 8 tháng 2 năm 2011
debug1: Đọc dữ liệu cấu hình /Users/akhkharu/.ssh/config
debug1: /Users/akhkharu/.ssh/config dòng 1: Áp dụng các tùy chọn cho *
debug1: /Users/akhkharu/.ssh/config dòng 6: Áp dụng các tùy chọn cho * .unfuddle.com
debug1: Đọc dữ liệu cấu hình /usr/local/Cellar/openssh/5.9p1/etc/ssh_config
debug1: auto-mux: Đang thử bản gốc
debug1: Ổ cắm điều khiển "/ms/git@droolit.unfuddle.com:22" không tồn tại
debug1: Kết nối với droolit.unfuddle.com [174.129.5.196] cổng 22.
debug1: Kết nối được thiết lập.
debug1: tệp nhận dạng /Users/akhkharu/.ssh/id_rsa loại 1
debug1: tệp nhận dạng /Users/akhkharu/.ssh/id_rsa-cert loại -1
debug1: tệp nhận dạng /Users/akhkharu/.ssh/id_dsa loại 2
debug1: tệp nhận dạng /Users/akhkharu/.ssh/id_dsa-cert loại -1
debug1: tệp nhận dạng /Users/akhkharu/.ssh/id_ecdsa loại -1
debug1: tệp nhận dạng /Users/akhkharu/.ssh/id_ecdsa-cert loại -1
debug1: Phiên bản giao thức từ xa 2.0, phiên bản phần mềm từ xa OpenSSH_5.8
debug1: khớp: OpenSSH_5.8 pat OpenSSH *
debug1: Kích hoạt chế độ tương thích cho giao thức 2.0
debug1: Chuỗi phiên bản cục bộ SSH-2.0-OpenSSH_5.9
gỡ lỗi1: SSH2_MSG_KEXINIT đã gửi
debug1: Đã nhận được SSH2_MSG_KEXINIT
debug1: kex: server-> client aes128-ctr hmac-md5 không
debug1: kex: client-> máy chủ aes128-ctr hmac-md5 không
gỡ lỗi1: gửi SSH2_MSG_KEX_ECDH_INIT
debug1: mong đợi SSH2_MSG_KEX_ECDH_REPLY
debug1: Khóa máy chủ: RSA a6: 74: 33: 36: 95: 31: 6e: a6: d7: 71: 87: b8: 3c: 38: e2: 60
debug1: Máy chủ 'droolit.unfuddle.com' được biết đến và khớp với khóa máy chủ RSA.
debug1: Đã tìm thấy khóa trong /Users/akhkharu/.ssh/ Unknown_hosts:390
debug1: ssh_rsa_verify: chữ ký chính xác
debug1: SSH2_MSG_NEWKEYS đã gửi
debug1: mong đợi SSH2_MSG_NEWKEYS
debug1: Đã nhận được SSH2_MSG_NEWKEYS
debug1: Chuyển vùng không được máy chủ cho phép
debug1: SSH2_MSG_SERVICE_REQUEST đã gửi
debug1: Đã nhận được SSH2_MSG_SERVICE_ACCEPT
debug1: Xác thực có thể tiếp tục: publickey
debug1: Phương thức xác thực tiếp theo: publickey
debug1: Cung cấp khóa công khai RSA: /Users/akhkharu/.ssh/id_rsa
debug1: Máy chủ chấp nhận khóa: pkache ssh-rsa blen 277
debug1: Xác thực đã thành công (khóa công khai).
Được xác thực thành droolit.unfuddle.com ([174.129.5.196]: 22).
debug1: thiết lập ổ cắm chính ghép kênh
debug1: kênh 0: mới [/ms/git@droolit.unfuddle.com:22]
debug1: control_persist_detach: quá trình tổng thể nền
debug1: chuyển sang nền
debug1: Bước vào phiên tương tác.
debug1: kết nối điều khiển ghép kênh
debug1: kênh 1: mới [điều khiển mux]
debug1: channel 2: new [client-session]
debug1: Remote: Lệnh cưỡng bức.
debug1: Remote: Cổng chuyển tiếp bị vô hiệu hóa.
debug1: Remote: X11 chuyển tiếp bị vô hiệu hóa.
debug1: Remote: Chuyển tiếp tác nhân bị vô hiệu hóa.
debug1: Remote: Vô hiệu hóa phân bổ.
debug1: Remote: Lệnh cưỡng bức.
debug1: Remote: Cổng chuyển tiếp bị vô hiệu hóa.
debug1: Remote: X11 chuyển tiếp bị vô hiệu hóa.
debug1: Remote: Chuyển tiếp tác nhân bị vô hiệu hóa.
debug1: Remote: Vô hiệu hóa phân bổ.
debug1: mux_client_Vquest_session: id phiên chính: 2
Yêu cầu phân bổ PTY không thành công
Cần SSH_ORIGINAL_COMMAND
debug1: client_input_channel_Vq: kênh 2 rtype thoát trạng thái trả lời 0
debug1: client_input_channel_Vq: kênh 2 rtype eow@openssh.com trả lời 0
debug1: kênh 2: miễn phí: phiên khách, nchannels 3
debug1: kênh 1: miễn phí: mux-control, nchannels 2
Kết nối được chia sẻ với droolit.unfuddle.com đã đóng.
[andrey-mbp ~] $ ll / ms /
tổng 0
srw ------- 1 akhkharu admin 0B 17 tháng 7 11:55 git@droolit.unfuddle.com: 22

Cảm ơn, anh
.

Câu trả lời:


19

*Stanza máy chủ của bạn đang bắt nó. Đặt khổ thơ cụ thể hơn trước đó.


Cảm ơn, nhưng điều đó sẽ không làm việc cho tôi. Tôi cần kích hoạt ControlMaster cho tất cả các máy chủ, nhưng không phải cho unsuddle.com. Tôi không thể liệt kê tất cả các máy chủ tôi sử dụng trong tập tin cấu hình. Những gì dường như đang làm việc là đặt quy tắc cho unluddle.com ngay từ đầu.
Andrey Chernih

8
Bạn có nghĩa là ... khi bạn đặt khổ chủ cụ thể hơn trước đó?
Ignacio Vazquez-Abrams

Vâng, nó lạ, nhưng nó hoạt động.
Andrey Chernih

Tôi đã tìm kiếm các trang web từ lâu, nhưng đó là một điều ưu tiên kỳ lạ!
JanKanis

1
Tôi sợ rằng tôi sẽ tự hỏi cho đến ngày sắp chết của mình, nếu tôi bị cuốn vào sự thật rằng câu trả lời này là chính xác, và nhận xét mà anh ấy đồng ý với những điểm đó.
differlysuperiorman

10

Như được mô tả trong câu trả lời cho câu hỏi tương tự của tôi trên SuperUser , bạn có thể sử dụng cú pháp "bang" để loại trừ các máy chủ cụ thể khỏi khổ Host *thơ gốc , như thế này:

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

Trong tình huống của tôi, tôi thấy rằng thứ tự của các Hostphần khi sử dụng Host *dường như không liên quan, nhưng phương pháp trên luôn hoạt động.


5

Đối với tôi nó hoạt động khi tôi thêm ControlPathvào nonetrong khổ hostthơ.

Bạn co thể thử:

Host *.unfuddle.com   
    ControlMaster no
    ControlPath none

Sau đó, không có phiên kiểm soát sẽ được tạo ra.


Trong trường hợp của tôi, tôi đã phải làm điều này cộng với việc đặt Host *phần ở cuối tập tin và nó đã hoạt động.
a3nm
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.