Seperti dicatat dalam jawaban lain, known_hosts tidak memiliki dukungan untuk rentang alamat IP. Namun, itu mendukung wildcard. Tentu saja wild-card bukan hal yang sama sehingga Anda harus benar-benar berhati-hati tentang bagaimana Anda menggunakannya di alamat IP, tetapi dalam kasus Github tertentu ini dapat dilakukan dengan aman.
Situasi tampaknya menjadi lebih sederhana sejak pertanyaan itu diajukan. Menurut dokumentasi resmi Github, hanya ada satu rentang alamat IP yang digunakan (setidaknya sejauh IPv4 berjalan). Ini adalah kisaran 192.30.252.0/22. Itu membuat 1020 kemungkinan alamat IP yang dengan mudah menjangkau seluruh rentang yang mungkin untuk oktet terakhir hanya dalam empat blok C yang berbeda.
Dari man 8 sshd
, inilah yang harus kita kerjakan di known_hosts:
Nama host adalah daftar pola yang dipisahkan koma ( *' and
? 'Bertindak sebagai wildcard); setiap pola pada gilirannya dicocokkan dengan nama host kanonik (saat mengautentikasi klien) atau terhadap nama yang disediakan pengguna (saat mengautentikasi server). Suatu pola juga dapat didahului oleh !' 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
['dan ]' brackets then followed by
:' dan nomor port yang tidak standar.
Menggunakan info ini, kita dapat membuat entri menggunakan * wildcard untuk oktet terakhir yang cocok dengan semua titik akhir Github yang mungkin (dan HANYA titik-titik akhir tersebut) seperti:
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==
Jika rentang IP yang Anda butuhkan untuk membangun tidak mengisi blok C penuh dan dengan demikian semua nilai yang mungkin untuk satu oktet, tidak mungkin untuk menggunakan wildcard untuk kecocokan yang akurat.