SSH cấu hình ký tự đại diện trên tên máy chủ mở rộng


25

Tôi muốn có một ký tự đại diện trong cấu hình SSH của mình để đặt tên người dùng mặc định của mình thành một giá trị cụ thể cho tất cả các máy chủ lưu trữ trên một tên miền nhất định. Nhưng tôi cũng muốn có một số tên ngắn cho một số máy chủ lưu trữ cụ thể. Tôi mong đợi một cái gì đó như thế này để làm việc:

Host *.mydomain.com
    User myusername
Host host1
    Hostname host1.mydomain.com

Với các cài đặt đó, nếu tôi nhập ssh host1.mydomain.comnó sẽ ước tính myusername@host1.mydomain.com, nhưng nếu tôi nhập ssh host1thì nó không áp dụng cài đặt Người dùng của tôi và thay vào đó tôi sẽ thấy mylocalusername@host1.mydomain.com.

Có cách nào để các ký tự đại diện khớp với tên máy chủ được mở rộng cuối cùng để tôi có thể nhập biểu mẫu ngắn hoặc dài và nhận được kết quả tương tự không?


Điều gì sẽ xảy ra nếu bạn chuyển đổi thứ tự, đặt phần ký tự đại diện thứ hai.
nhận

Bạn đã thử chưa? Tôi khá chắc chắn rằng chỉ cần bạn nhập đúng tên người dùng với tên miền, nếu có bất cứ điều gì.
Mu Tâm

Tôi đã không thử nó, đó là lý do tại sao tôi biến nó thành một câu trả lời bình luận như một thứ gì đó để thử, thay vì một câu trả lời có thể bỏ qua.
chấp nhận

Câu trả lời:


13

Đơn giản chỉ cần sử dụng:

Host *.mydomain.com host1
User myusername

Host host1
Hostname host1.mydomain.com
  • Các mẫu thay thế được cung cấp bởi một khoảng trống phân định trong dòng Máy chủ .
  • Tất cả các mẫu máy chủ phù hợp được áp dụng.
  • Nếu một tùy chọn xảy ra nhiều lần, chỉ có lần xuất hiện đầu tiên được sử dụng

3
Điều đó tiết kiệm ít nhất một chút gõ. Âm thanh như bạn không biết về bất kỳ cách nào để tránh trùng lặp thông tin tên miền?
Mu Tâm

Sẽ thật tuyệt nếu SSH chỉ có thể thử thêm tên miền mặc định, tức là "lan" hoặc "mycompany.com", thay vì phải mã cứng nó trong tệp cấu hình.
Saustrup

18

Bạn chỉ có thể thiết lập CanonicalizeHostnameđể yescho reparse ssh_config với hostname kinh điển của bí danh của bạn. Ví dụ:

CanonicalizeHostname yes
Host *.mydomain.com
    User myusername

Host host1
    HostName host1.mydomain.com

Ngoài ra, nếu bạn cũng muốn ánh xạ lại tên máy chủ, bạn có thể sử dụng Matchthay vì Hostchỉ khớp với tên máy chủ chính tắc. Ví dụ: trong:

Match canonical host="*.mydomain.com"
    User myusername

Host host2.mydomain.com
    HostName host2.otherdomain.com

Lệnh người dùng sẽ không được đặt khi bạn kết nối host2.mydomain.com.


Lưu ý rằng vẫn còn các phiên bản cũ của ssh không hỗ trợ các tùy chọn này - nếu bạn gặp phải một trong những phiên bản đó, như tôi đã làm, giải pháp Máy chủ vẫn sẽ hoạt động.
Kyrstellaine

2

Việc sử dụng CanonicalDomains cũng sẽ hoạt động.

CanonicalizeHostname yes
CanonicalDomains mydomain.com

Host *
User myusername

Nếu bạn muốn có một tên ngắn cho một máy chủ cụ thể, ví dụ:

Host h
Hostname host1

Tuy nhiên, tôi sẽ không đề xuất một cái tên ngắn.


1

Bạn có thể sử dụng% h.mydomain.com trong .ssh / config của bạn.


 Host host?
 User myusername
 Hostname %h.mydomain.com

Host host?? User myusername Hostname %h.mydomain.com

Host host??? User myusername Hostname %h.mydomain.com

Bây giờ bạn có thể làm:

máy chủ ssh1
thay vì
ssh host1.mydomain.com
máy chủ ssh10
thay vì
máy chủ ssh10.mydomain.com
và ssh host100

Trân trọng, Bert

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.