ssh-keygen -lf ssh_host_rsa_key.pub
देता है:
2048 SHA256:nVDFXqK06A4dwQYjBR3MHglFllTCjSHVNgYcCeRCNaQ root@tianhe-windy (RSA)
फिर मैं अपने आप sha256
फ़िंगरप्रिंट की गणना करने का प्रयास करता हूं।
cat ssh_host_rsa_key.pub
देता है:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/Ukz/o8b2L4fYyACOJOnFh8KOE/DypW9Dt3s8gZqKTb3W2BPmghLZyFeMQAjpVLJ/z414ydvb67AE9nyOQq1oMRbAyjbu97ocJ4UHXM6UO0wSRUF/fwtxfPju2p2hbVN7PqCV5+3cDUEIR1mVM8j6sdT7YbMTsZJab9gDlLD76ZKLCYLR1GSHNbxDp4DpMAkJsoS8F6ee+OwV6SiDvI3N6XDwrAASLNy09s2eid3H1YUSq276J5TLsZiKMPDgs7O3Tw2uMPkdzTdWSYJ/w0hyVO5YZW44JzSxg3PubV08eHPQWi17RwT7fa+QPvRw87YnACzFusZHOxQDxzQfCohH root@tianhe-windy
मैं बेस 64 एन्कोडेड सार्वजनिक कुंजी को A
से H
तक कॉपी करता हूं, कोई सफेद जगह नहीं।
तब मैं करता हूं:
import hashlib
import base64
b64pubkey = 'AAAAB3NzaC1yc2EAAAADAQABAAABAQC/Ukz/o8b2L4fYyACOJOnFh8KOE/DypW9Dt3s8gZqKTb3W2BPmghLZyFeMQAjpVLJ/z414ydvb67AE9nyOQq1oMRbAyjbu97ocJ4UHXM6UO0wSRUF/fwtxfPju2p2hbVN7PqCV5+3cDUEIR1mVM8j6sdT7YbMTsZJab9gDlLD76ZKLCYLR1GSHNbxDp4DpMAkJsoS8F6ee+OwV6SiDvI3N6XDwrAASLNy09s2eid3H1YUSq276J5TLsZiKMPDgs7O3Tw2uMPkdzTdWSYJ/w0hyVO5YZW44JzSxg3PubV08eHPQWi17RwT7fa+QPvRw87YnACzFusZHOxQDxzQfCohH'
sha256 = hashlib.sha256()
sha256.update(base64.b64decode(b64pubkey))
b64fingerprint = base64.b64encode(sha256.digest())
print(b64fingerprint)
और पाओ
nVDFXqK06A4dwQYjBR3MHglFllTCjSHVNgYcCeRCNaQ=
ssh-keygen
द्वारा संचित एक की तुलना करें:
nVDFXqK06A4dwQYjBR3MHglFllTCjSHVNgYcCeRCNaQ
ssh_host_ecdsa_key.pub
की गणना करते समय मुझे एक अतिरिक्त =
भी मिलता है।
मैंने क्या गलत किया?
1 उत्तर
कुछ भी गलत नहीं है, यह सिर्फ इतना है कि सम्मेलन द्वारा एसएसएच किसी भी पिछली पैडिंग को छोड़ देता है। आप किसी भी अनुगामी =
चिह्नों को स्वयं भी हटा सकते हैं; वे किसी भी डेटा को एन्कोड नहीं करते हैं।
पायथन base64
रूटीन मानक बेस 64 एल्गोरिथम को लागू करते हैं जो एन्कोडेड डेटा के चार वर्णों में से एक से अधिक को वापस करने के लिए निर्दिष्ट है। मूल ईमेल के लिए MIME मानक से हैं, मुझे विश्वास है।
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।