Từ ssh_config
trang người đàn ông:
Đố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 thông số kỹ thuật của Máy chủ lưu trữ 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 cung cấp trong thông số kỹ thuật. Tên máy chủ phù hợp là tên được đưa ra trên dòng lệnh.
Vì giá trị thu được đầu tiên cho mỗi tham số được sử dụng, nên khai báo cụ thể hơn về máy chủ ở gần đầu tệp và mặc định chung ở cuối.
Ngoài ra, tôi chắc chắn rằng tôi hiểu 2 phần này nếu bạn không rõ chức năng của Host và PATTERNS. Chỉ có 1 cấp độ phù hợp đang diễn ra. Cơ sở này rất cơ bản trong khả năng regex của nó, nhưng vẫn mạnh mẽ một khi bạn mò mẫm nó.
Phần lưu trữ
The possible keywords and their meanings are as follows (note that keywords
are case-insensitive and arguments are case-sensitive):
Host Restricts the following declarations (up to the next Host keyword)
to be only for those hosts that match one of the patterns given
after the keyword. If more than one pattern is provided, they
should be separated by whitespace. A single ‘*’ as a pattern can
be used to provide global defaults for all hosts. The host is the
hostname argument given on the command line (i.e. the name is not
converted to a canonicalized host name before matching).
A pattern entry may be negated by prefixing it with an exclamation
mark (‘!’). If a negated entry is matched, then the Host entry is
ignored, regardless of whether any other patterns on the line
match. Negated matches are therefore useful to provide exceptions
for wildcard matches.
See PATTERNS for more information on patterns.
THỰC TRẠNG
A pattern consists of zero or more non-whitespace characters, ‘*’ (a
wildcard that matches zero or more characters), or ‘?’ (a wildcard that
matches exactly one character). For example, to specify a set of
declarations for any host in the “.co.uk” set of domains, the following
pattern could be used:
Host *.co.uk
The following pattern would match any host in the 192.168.0.[0-9] network
range:
Host 192.168.0.?
A pattern-list is a comma-separated list of patterns. Patterns within
pattern-lists may be negated by preceding them with an exclamation
mark (‘!’). For example, to allow a key to be used from anywhere within an
organisation except from the “dialup” pool, the following entry
(in authorized_keys) could be used:
from="!*.dialup.example.com,*.example.com"
Quy tắc phân lớp
Vấn đề với cách tiếp cận của bạn là mẫu phù hợp với phần Máy chủ thứ nhất không khớp với phần 2. Tôi thường làm một cái gì đó như thế này:
Host *
User myuser
IdentityFile ~/.ssh/myidentity
Host blah
HostName complicated.hostname.com
Một điều mà mọi người thường không tuân theo các quy tắc này là họ có thể lặp lại. Vì vậy, những gì tôi thường làm là có nhiều phần và tôi chia chúng ra bằng cách sử dụng Host *
.
Host *
User user1
Host blah1
HostName complicated1.hostname.com
Host blah2
HostName complicated2.hostname.com
Host *
User user2