मेरा एक मेजबान है जिसका नाम nms.example.org है। मेरे में मेरे /etc/ssh/ssh_known_hosts
पास RSA कुंजी के साथ मेजबान के लिए एक प्रविष्टि है। यह प्रविष्टि, और अन्य सभी प्रविष्टियाँ मेरे विन्यास प्रबंधन प्रणाली द्वारा प्रबंधित हैं।
nms.example.org ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZqfmVPs/XqTS...
इसके अलावा, मेरे पास /etc/ssh/ssh_config
मेजबान कुंजी उपनाम स्थापित करने वाले विशिष्ट होस्ट के लिए मेरी प्रविष्टि है । जो अगर मुझे सब कुछ ठीक से समझ में आ रहा है, इसका मतलब है कि केवल nms.example.org
बात होनी चाहिए।
Host nms.example.org nms.example nms
HostKeyAlias nms.example.org
HostName nms.example.org
तब क्यों, जब मैं किसी क्लाइंट से कनेक्ट करता हूं, तब भी लगता है कि उसे लगता है कि उसे होस्ट के आईपी के साथ मेरे प्रति उपयोगकर्ता ज्ञात_होस्ट की कुंजी जोड़ने की जरूरत है ?
$ 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 जानता है कि मेरा होस्ट वैध है (देखें :)Host 'nms.example.org' is known and matches the RSA host key
तो यह आईपी के लिए उपयोगकर्ता प्रोफ़ाइल में कुंजी क्यों जोड़ता है?
यह बेहद परेशान करने वाला है, क्योंकि जब मैं किसी मशीन को फिर से इंस्टॉल करता हूं, तो मेरा कॉन्फ़िगरेशन मैनेजमेंट सिस्टम होस्ट कीज़ को सभी सिस्टम में ठीक से इकट्ठा करने और वितरित करने का काम करता है। लेकिन प्रति-उपयोग ज्ञात_होस्ट फ़ाइलों में आईपी के साथ जुड़े परस्पर विरोधी कुंजियों को छोड़ दिया जाएगा, जो एक कनेक्शन के प्रयास पर चेतावनी का कारण बनता है जो स्क्रिप्ट को कनेक्ट करने से रोकता है।
$ 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)?
मैं प्रत्येक उपयोगकर्ता-ज्ञात_होस्ट में प्रति-आईपी मान को कैशिंग से कैसे रोक सकता हूं? या क्या कुछ सुरक्षा कारण है कि मुझे सिर्फ इस कष्टप्रद व्यवहार के साथ रहना है? यह मुझे निराश भी करता है क्योंकि कुछ सर्वरों में कुछ गतिशील आईपी पते होते हैं। मेरा कॉन्फ़िगरेशन प्रबंधन DNS अद्यतनों को संभालता है। लेकिन मुझे इन प्रति-आईपी होस्ट कीज़ पर मेरी प्रति-उपयोगकर्ता ज्ञात_होस्ट फ़ाइलों को भरने की सुविधा मिलती है।