Như đã lưu ý trong các câu trả lời khác, know_hosts không hỗ trợ cho dải địa chỉ IP. Nó, tuy nhiên, hỗ trợ ký tự đại diện. Tất nhiên thẻ đại diện không hoàn toàn giống nhau, vì vậy bạn cần thực sự cẩn thận về cách bạn sử dụng chúng trong địa chỉ IP, nhưng trong trường hợp cụ thể của Github, điều này có thể được thực hiện một cách an toàn.
Tình hình dường như đã trở nên đơn giản hơn kể từ khi câu hỏi được hỏi. Theo tài liệu chính thức của Github, chỉ có một dải địa chỉ IP được sử dụng (ít nhất là theo như IPv4). Đây là phạm vi 192.30.252.0/22. Điều đó làm cho 1020 địa chỉ IP có thể mở rộng một cách thuận tiện toàn bộ phạm vi có thể cho octet cuối cùng chỉ trong bốn khối C khác nhau.
Từ man 8 sshd
đây, đây là những gì chúng ta phải làm việc với know_hosts:
Tên máy chủ là danh sách các mẫu được phân tách bằng dấu phẩy ( *' and
? 'Đóng vai trò là ký tự đại diện); lần lượt từng mẫu được khớp với tên máy chủ chính tắc (khi xác thực ứng dụng khách) hoặc với tên do người dùng cung cấp (khi xác thực máy chủ). Một mẫu cũng có thể được bắt đầu bằng !' to indicate negation: if the host name matches a negated pattern, it is not accepted (by that line) even if it matched another pattern on the line. A hostname or address may optionally be enclosed within
['và ]' brackets then followed by
:' và số cổng không chuẩn.
Sử dụng thông tin này, chúng tôi có thể tạo một mục nhập bằng cách sử dụng * ký tự đại diện cho octet cuối cùng khớp với tất cả các điểm cuối Github có thể (và CHỈ các điểm cuối đó) như sau:
github.com,192.30.252.*,192.30.253.*,192.30.254.*,192.30.255.* ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
Nếu phạm vi IP bạn cần để xây dựng không lấp đầy một khối C đầy đủ và do đó, tất cả các giá trị có thể có cho một octet, không thể sử dụng các ký tự đại diện cho một kết hợp chính xác như vậy.