Dừng cấu hình ssh trên trận đấu đầu tiên


18

Tôi đã thêm một proxy cục bộ cho tất cả các máy chủ lưu trữ trong cấu hình .ssh của mình, tuy nhiên tôi muốn chuyển sang vm cục bộ của mình mà không cần lệnh proxy. Đầu ra của nỗ lực ssh của tôi:

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

Đưa ra cấu hình ssh sau đây, làm cách nào để ngăn ProxyCommand được áp dụng cho mục local.dev?

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

Câu trả lời:


22

Bạn có thể loại trừ local.dev khỏi ProxyCommand, sử dụng !trước nó:

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

Từ tài liệu ssh_config :

Nếu có nhiều hơn một mẫu được cung cấp, chúng nên được phân tách bằng khoảng trắng.

Một mục nhập mẫu có thể bị phủ định bằng cách thêm tiền tố vào nó bằng dấu chấm than (`! ') . Nếu mục nhập phủ định được khớp, thì mục Máy chủ bị bỏ qua, bất kể có bất kỳ mẫu nào khác trên dòng khớp. Do đó, các kết quả phủ định rất hữu ích để cung cấp ngoại lệ cho các kết hợp ký tự đại diện.

Các tài liệu cũng cho biết:

Đối với mỗi tham số, giá trị thu được đầu tiên sẽ được sử dụng . Các tệp cấu hình chứa các phần được phân tách bằng các đặc tả của `` Host '' và phần đó chỉ được áp dụng cho các máy chủ khớp với một trong các mẫu được đưa ra trong đặc tả. Tên máy chủ phù hợp là tên được đưa ra trên dòng lệnh.

Vì vậy, bạn cũng có thể tắt ProxyCommand cho local.dev bằng cách ghi đè giá trị mà bạn đã xác định trong Host *:

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

8

Một tùy chọn trong tệp cấu hình được áp dụng lần đầu tiên. Vì bạn không có ProxyCommand nào trong mục nhập máy chủ, nên mục trong *mục nhập của bạn sẽ được sử dụng.

Có hai cách để khắc phục điều này:

  • Đối với các máy chủ lưu trữ mà bạn không muốn sử dụng lệnh proxy, chỉ cần thêm dòng
    ProxyCommand không
  • Đối với *mục nhập, lưu ý cụ thể rằng mục nhập không nên áp dụng cho máy chủ local.devbằng cách phủ định nó với!
    Máy chủ! Local.dev *

để phân tách nhiều máy chủ sử dụng không gian. dấu phẩy (,) không làm việc cho tôi. ID nhà phân phối: Ubuntu Mô tả: Ubuntu 17.10 Phát hành: 17.10 Tên mã: artful
Aruna

Cảm ơn @ArunaFromLK - Tôi không thể tin rằng tôi đã bỏ lỡ điều đó, và rằng không ai khác đã phát hiện ra điều đó trong 3,5 năm! Tôi đã cập nhật câu trả lời ngay bây giờ.
Jenny D
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.