Saya memiliki host yang bernama nms.example.org. Di saya, /etc/ssh/ssh_known_hosts
saya punya entri untuk tuan rumah dengan kunci RSA. Entri ini, dan semua entri lainnya dikelola oleh sistem manajemen konfigurasi saya.
nms.example.org ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZqfmVPs/XqTS...
Saya juga punya entri di saya /etc/ssh/ssh_config
untuk host tertentu yang mengatur alias host key. Yang jika saya mengerti semuanya dengan benar, ini berarti hanya yang nms.example.org
harus penting.
Host nms.example.org nms.example nms
HostKeyAlias nms.example.org
HostName nms.example.org
Lalu mengapa, ketika saya terhubung dari klien apakah ssh tampaknya masih berpikir perlu menambahkan kunci ke dikenal_hosts per-pengguna saya dengan IP host?
$ ssh nms -v
OpenSSH_6.0p1 Debian-4+deb7u4, OpenSSL 1.0.1e 11 Feb 2013
debug1: Reading configuration data /home/zoredache/.ssh/config
debug1: /home/zoredache/.ssh/config line 61: Applying options for *
debug1: /home/zoredache/.ssh/config line 71: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 84: Applying options for nms
debug1: /etc/ssh/ssh_config line 363: Applying options for *
debug1: Connecting to nms.example.org [104.236.190.144] port 22.
debug1: Connection established.
debug1: identity file /home/zoredache/.ssh/zoredache-20140204.id_rsa type 1
...
debug1: Server host key: RSA 6b:5f:b6:e9:13:c3:b7:39:1e:ec:74:05:33:64:4d:5e
debug1: using hostkeyalias: nms.example.org
debug1: Host 'nms.example.org' is known and matches the RSA host key.
debug1: Found key in /etc/ssh/ssh_known_hosts:104
Warning: Permanently added the RSA host key for IP address '192.0.2.144' to the list of known hosts.
debug1: ssh_rsa_verify: signature correct
...
SSH tahu bahwa host saya valid (Lihat Host 'nms.example.org' is known and matches the RSA host key
:) jadi mengapa ia menambahkan kunci untuk IP ke profil pengguna?
Ini sangat menjengkelkan, karena ketika saya menginstal ulang mesin, sistem manajemen konfigurasi saya menangani mengumpulkan dan mendistribusikan kunci host ke semua sistem dengan baik. Tetapi akan ada sisa kunci yang saling terkait yang terkait dengan IP ini dalam penggunaan-dikenal file host yang menyebabkan peringatan pada upaya koneksi yang mencegah skrip dari menghubungkan.
$ ssh nms -v
OpenSSH_6.0p1 Debian-4+deb7u4, OpenSSL 1.0.1e 11 Feb 2013
...
debug1: Local version string SSH-2.0-OpenSSH_6.0p1 Debian-4+deb7u4
debug1: using hostkeyalias: nms.example.org
...
debug1: Server host key: RSA 6b:5f:b6:e9:13:c3:b7:39:1e:ec:74:05:33:64:4d:5e
debug1: using hostkeyalias: nms.example.org
debug1: Host 'nms.example.org' is known and matches the RSA host key.
debug1: Found key in /etc/ssh/ssh_known_hosts:104
Warning: the RSA host key for 'nms.example.org' differs from the key for the IP address '192.0.2.144'
Offending key for IP in /home/zoredache/.ssh/known_hosts:25
Matching host key in /etc/ssh/ssh_known_hosts:104
Are you sure you want to continue connecting (yes/no)?
Bagaimana saya bisa mencegah ssh dari caching nilai per-IP ini di setiap pengguna known_hosts? Atau adakah alasan keamanan mengapa saya harus hidup dengan perilaku yang menjengkelkan ini? Ini juga membuat saya frustasi karena beberapa server memiliki alamat IP yang agak dinamis. Manajemen konfigurasi saya menangani pembaruan DNS. Tapi saya mendapatkan kunci host per-IP yang tersisa ini mengisi file-file yang dikenal dengan saya per-pengguna.