जवाबों:
फ़िंगरप्रिंट होस्ट की सार्वजनिक कुंजी पर आधारित होता है, जो आमतौर पर "/etc/ssh/ssh_host_rsa_key.pub" पर आधारित होता है। आम तौर पर आप जिस होस्ट से कनेक्ट हो रहे हैं उसकी आसान पहचान / सत्यापन के लिए।
यदि फिंगरप्रिंट बदलता है, तो आप जिस मशीन से जुड़ रहे हैं, उन्होंने अपनी सार्वजनिक कुंजी बदल दी है। यह एक बुरी बात नहीं हो सकती है (ssh को पुन: स्थापित करने से होता है), लेकिन यह संकेत भी दे सकता है कि आप एक ही मशीन / आईपी पर एक अलग मशीन से कनेक्ट हो रहे हैं (तब होता है जब आप लोड बैलेंसर जैसी किसी चीज से जुड़ रहे होते हैं) या आप एक आदमी के बीच-बीच के हमले के साथ लक्षित किया जा रहा है, जहां हमलावर किसी तरह एक दूसरे मेजबान से जुड़ने के लिए आपके ssh कनेक्शन को रोक रहा है / रोक रहा है जो आपके उपयोगकर्ता / pw को स्नूपिंग कर सकता है।
नीचे पंक्ति: यदि आपको एक बदले हुए फिंगरप्रिंट की चेतावनी मिलती है, तो सतर्क रहें और दोहराएं कि आप वास्तव में एक सुरक्षित कनेक्शन पर सही होस्ट से जुड़ रहे हैं। हालांकि अधिकांश समय यह हानिरहित है, यह एक संभावित मुद्दे का संकेत हो सकता है
देखें: http://www.lysium.de/blog/index.php?/archives/186-How-to-get-ssh-server-fingerprint-information.html
और: http://en.wikipedia.org/ wiki / Public_key_fingerprint
~/.ssh/known_hosts
। इस तरह, जब आप सर्वर से जुड़ते हैं, तो आपका SSH क्लाइंट इस सर्वर को पहचान लेगा, क्योंकि आपने इसकी सार्वजनिक कुंजी को सहेज लिया है known_hosts
। इसलिए, वास्तव में आपको कभी भी "हां" नहीं कहना चाहिए जब एसएसएच क्लाइंट आपको बताता है कि "मेजबान की प्रामाणिकता स्थापित नहीं की जा सकती है"। आपको सर्वर की सार्वजनिक कुंजी को पहले से जोड़ना चाहिए।
~/.ssh/known_hosts
फ़ाइल में पहले से जोड़ना चाहिए और कभी भी हाँ नहीं कहना चाहिए जब आपका एसएसएच क्लाइंट आपको बताता है "क्लाइंट की प्रामाणिकता स्थापित नहीं की जा सकती है" या जब यह आपको बताता है "सर्वर की सार्वजनिक कुंजी है बदला हुआ"।
आप सार्वजनिक कुंजी के लिए एक फिंगरप्रिंट उत्पन्न कर सकते हैं ssh-keygen
जैसे कि:
ssh-keygen -lf /path/to/key.pub
ठोस उदाहरण (यदि आप RSA सार्वजनिक कुंजी का उपयोग करते हैं):
$ ssh-keygen -lf ~/.ssh/id_rsa.pub
2048 00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff /Users/username/.ssh/id_rsa.pub (RSA)
पहला भाग (2048)
बिट्स में महत्वपूर्ण लंबाई है, दूसरा भाग (00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff)
सार्वजनिक कुंजी का फिंगरप्रिंट है और तीसरा भाग सार्वजनिक कुंजी फ़ाइल का स्थान है।
ssh-keygen -lf
है कि आप क्या चाहते हैं।
ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
। यह उस फिंगरप्रिंट को दिखाता है जो SSH के लॉगिन पर लोकलहोस्ट को दिखाया जाता है।
ssh-keygen
सूचना दी sha256
उँगलियों के निशान। md5
उंगलियों के निशान पाने के लिए मैं भागा ssh-keygen -l -E md5 -f ~/.ssh/id_rsa.pub
। #archlinux
ssh -o FingerprintHash=md5
या में बराबर ssh_config
और चीजें हैं जो का उपयोग पर ssh
की तरह scp
।
Base64- एन्कोडेड सार्वजनिक कुंजी के भीतर बाइनरी डेटा पर फिंगरप्रिंट MD5 है।
$ ssh-keygen -f foo
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in foo.
Your public key has been saved in foo.pub.
The key fingerprint is:
65:30:38:96:35:56:4f:64:64:e8:e3:a4:7d:59:3e:19 andrew@localhost
The key's randomart image is:
+--[ RSA 2048]----+
| +*..+* |
| =. +.= |
| . . .o . |
| o+ E |
| S= . + o |
| . o o + |
| . . |
| |
| |
+-----------------+
$ cat foo.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEbKq5U57fhzQ3SBbs3NVmgY2ouYZfPhc6cXBNEFpRT3T100fnbkYw+EHi76nwsp+uGxk08kh4GG881DrgotptrJj2dJxXpWp/SFdVu5S9fFU6l6dCTC9IBYYCCV8PvXbBZ3oDZyyyJT7/vXSaUdbk3x9MeNlYrgItm2KY6MdHYEg8R994Sspn1sE4Ydey5DfG/WNWVrzFCI0sWI3yj4zuCcUXFz9sEG8fIYikD9rNuohiMenWjkj6oLTwZGVW2q4wRL0051XBkmfnPD/H6gqOML9MbZQ8D6/+az0yF9oD61SkifhBNBRRNaIab/Np7XD61siR8zNMG/vCKjFGICnp andrew@localhost
$ echo 'AAAAB3NzaC1yc2EAAAADAQABAAABAQDEbKq5U57fhzQ3SBbs3NVmgY2ouYZfPhc6cXBNEFpRT3T100fnbkYw+EHi76nwsp+uGxk08kh4GG881DrgotptrJj2dJxXpWp/SFdVu5S9fFU6l6dCTC9IBYYCCV8PvXbBZ3oDZyyyJT7/vXSaUdbk3x9MeNlYrgItm2KY6MdHYEg8R994Sspn1sE4Ydey5DfG/WNWVrzFCI0sWI3yj4zuCcUXFz9sEG8fIYikD9rNuohiMenWjkj6oLTwZGVW2q4wRL0051XBkmfnPD/H6gqOML9MbZQ8D6/+az0yF9oD61SkifhBNBRRNaIab/Np7XD61siR8zNMG/vCKjFGICnp' \
| base64 -D | md5
6530389635564f6464e8e3a47d593e19
Md5sum 6530389635564f6464e8e3a47d593e19 कुंजी को अलग किए गए कॉलनों के बिना उत्पन्न होने पर प्रदर्शित किया जाता है।
हालाँकि, अगर आप उन उंगलियों के निशान से निपट रहे हैं जो अमेज़ॅन ईसी 2 कुंजी जोड़े कंसोल में दिखाते हैं, तो दुर्भाग्य से यह एक अलग जानवर हो सकता है । यदि यह 32-अंकीय हेक्स स्ट्रिंग है, तो यह मानक MD5 SSH सार्वजनिक कुंजी फिंगरप्रिंट ऊपर है। लेकिन अगर यह 40 अंकों का अंक है, तो यह वास्तव में PKCS # 8 प्रारूप में निजी कुंजी के SHA1 को ले कर गणना की गई एक फिंगरप्रिंट है :
$ openssl pkcs8 -in foo -nocrypt -topk8 -outform DER | openssl sha1 -c
e2:77:39:d3:53:a7:62:68:5f:da:82:0e:99:61:30:64:a2:88:c4:58
awk '{print $2}' /path/to/keyfile.pub
या समान।
cat id_rsa.pub | cut -d' ' -f2 | base64 -d | md5sum
यदि आप यह देखने के लिए SSH कुंजी फ़ाइल की जांच करना चाहते हैं कि क्या यह उसी तरह है जैसा कि गितुब द्वारा "डिप्लॉय की" के रूप में बताया गया है, तो यह आपके लिए है ...
निजी URL से: https://github.com/<username>/<repo_name>/settings/key जो आप देखेंगे
टर्मिनल पर:
$ ls -l id*
-rw------- 1 bruno staff 1675 Mar 29 17:03 id_rsa
-rw-r--r-- 1 bruno staff 416 Mar 29 17:03 id_rsa.pub
$ ssh-keygen -E md5 -lf id_rsa
2048 MD5:07:b4:00:a4:65:ef:44:89:05:84:60:0c:c9:b2:36:5e ec2-user@ip-10-2-1-16.ec2.internal (RSA)
$ ssh-keygen -E md5 -lf id_rsa.pub
2048 MD5:07:b4:00:a4:65:ef:44:89:05:84:60:0c:c9:b2:36:5e ec2-user@ip-10-2-1-16.ec2.internal (RSA)
आप ध्यान देंगे कि आपको निजी और सार्वजनिक दोनों कीज़ के लिए एक ही फिंगरप्रिंट मिलता है।
इसी कमांड को GitHub की एक साफ सुविधा के साथ जोड़ा जा सकता है, जो कि यह तथ्य है कि वे सार्वजनिक रूप से उपयोगकर्ताओं की SSH सार्वजनिक कुंजी https://github.com/<username>.keys पर सेवा करते हैं।
यहाँ एक-लाइनर है जिसका उपयोग आप इसका लाभ उठाने के लिए कर सकते हैं।
$ curl -sL https://github.com/RichardBronosky.keys | while read; do echo -e "\nkey #$((++i)):"; ssh-keygen -E md5 -lf - <<<"$REPLY"; echo $REPLY; done
key #1:
2048 MD5:07:b4:00:a4:65:ef:44:89:05:84:60:0c:c9:b2:36:5e no comment (RSA)
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJGT35gvsFveu+80qgurrLHId0h55E9jliM7Fo0mV9b7eg3EfyagkAcJUSMFkoov3HY4CW0yzOc7WlN57ABwvpRz1ioFDex0n0FkjoSEs5ROeT1OneRK6Bf6XnplgPuQ/LSSkv3kmK6I29R+YWi6TjDvLLoA5BrXJjOMfUv36jxWCDtk/5ZdhMZqhsMuDm06Jg5JBu6n5jQaZkmaIaunz7vOfwVG9LoCI+MYyIdo2S4VTva7Ee7jfAvgSUUgHTjhzsPO0/Ww5a/Kz2ehXW27aJxj/QPLfYR2LmTMbQKm3WpB8P1LjoiU7zjPoVoZ43a4P2JLUDidGKCd3eY5b5xewz
key #2:
2048 MD5:f7:98:f1:0b:73:c6:2a:21:00:7a:70:1d:0f:cf:d8:cc no comment (RSA)
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCQsZrjwKjB4WnE4SwVdDX5eEMxKzPHFBVKKpo9vvWUXRQwdTZy6iVOkyF26IPR+xDPzslzXOClKXUrWEh6La/EMpRwuMrWAbMIJFeDHOb56q4azgopoJmMJHo0yxGu0Ts4XszMACYRhlG6uK2AP5SYiOTp1zKPFjazXAdwLXyOvJurzy6KKuGJdSs/sj9+4uehgyRNOhehCSfg71tJJYwRvO2DDfLgaVEKOgZx58gEnJfhhz9D7rbvdZNhw/hCgtVNJaQF9Mdke2OPwWSo8i0/XNb9Bu/GRXqwMZrxDBhyzieocW40cwuzxWfzoi03aISdtQ1HtawH8+/sswviM1+B
ssh-keygen -r host.name.com
एक sshd उदाहरण पर सभी कॉन्फ़िगर सार्वजनिक कुंजियों के लिए उंगलियों के निशान का उत्पादन करेगा।
फिर इन्हें DNS SSHFP रिकॉर्ड में डाला जा सकता है ।