खुलने के नए संस्करण में (पुराने) हेक्स प्रारूप में SSH कुंजी फिंगरप्रिंट प्राप्त करें


36

ऐसा लगता है कि ओपनश ने महत्वपूर्ण उंगलियों के निशान को प्रदर्शित करने के तरीके को बदल दिया है।

मैं क्लाइंट मशीन से सर्वर पर ssh करने का प्रयास कर रहा हूं:

  • ग्राहक: ubuntu 14.04 रनिंग ओपनएसएसएच 6.6.1
  • सर्वर: FreeBSD ओपनएसएसएच 7.2p2 चल रहा है।

क्लाइंट इस तरह सर्वर के 16 जोड़े के अनुक्रम के रूप में सर्वर की कुंजी के md5 हैश की रिपोर्ट करता है:

a7:b1:3e:3d:84:24:a2:5a:91:5f:6f:e9:cf:dd:2b:6a

सर्वर sha256 हैश का उपयोग करने के लिए चूकता है, लेकिन इस उत्तर के लिए धन्यवाद मैं इसे sha1 हैश द्वारा देने के लिए मजबूर कर सकता हूं:

[root@host /etc/ssh]# ssh-keygen -l -E sha1 -f ssh_host_ecdsa_key.pub

मैं चाहता हूं कि परिणाम इस तरह दिखे:

a7:b1:3e:3d:84:24:a2:5a:91:5f:6f:e9:cf:dd:2b:6a

लेकिन इसके बजाय मुझे यह मिलता है:

256 SHA1:KIh0ejR4O+RqrSq7JdGAASddRfI root@host.local (ECDSA)

यह मुझे ऐसा लगता है जैसे फिंगरप्रिंट के बेस 64 एन्कोडेड संस्करण को अब हेक्स अंकों के बजाय प्रदर्शित किया जा रहा है।

(पुराने) क्लाइंट (कोलोन से अलग हेक्स डिजिट, शा 1 हैश) द्वारा रिपोर्ट की गई उसी प्रारूप में सर्वर की कुंजी का चेकसम कैसे प्राप्त कर सकते हैं ताकि यह जांचा जा सके कि वे समान हैं?

संपादित करें: SSH का पुराना संस्करण md5 चेकसम देता है , कि sha1 चेकसम जैसा कि मैंने गलती से सोचा था। ई-विकल्प में उस चेकसम (जैसे अब स्वीकार किए गए उत्तर को राज्य होना चाहिए) का उपयोग वांछित आउटपुट देता है।

जवाबों:


47

क्लाइंट इस तरह से हेक्स अंकों के 16 जोड़े के अनुक्रम के रूप में सर्वर की कुंजी के sha1 हैश की रिपोर्ट करता है:

    a7:b1:3e:3d:84:24:a2:5a:91:5f:6f:e9:cf:dd:2b:6a

यह एमडी 5 हैश है।

जैसा कि आप दौड़ते हुए देख सकते हैं

ssh-keygen -l -E md5 -f ssh_host_ecdsa_key.pub

आपको वही फिंगरप्रिंट मिलेगा जो आपको इस तरह की हरकीरी के बिना चाहिए जो आप अपने उत्तर में बता रहे हैं।


1
दुर्भाग्य से, यह काम नहीं करता है। मेरे प्रश्न में आपके सुझाए गए आदेश को चलाने का परिणाम है। Ssh-keygen के नए संस्करण md5 हैश को एक बेस स्ट्रिंग के बजाय (बेस64 एन्कोडेड?) स्ट्रिंग के रूप में देते हैं। "ऑल दैट हरकिरी" (एक उपयुक्त विवरण!) सबसे आसान तरीका है जिससे मुझे ओपनश टूल के नए संस्करण से एक पुरानी शैली हेक्स स्ट्रिंग मिल सकती है।
स्टोकेस्टिक

जब तक फ्रीबीएसडी कुछ तोड़ता है (या एमडी 5 समर्थन हटा दिया जाता है), तो कोई कारण नहीं है कि यह काम न करे। ध्यान दें कि आपके आदेश के sha1बजाय गलत सूची है md5! मेरे पास उबंटू-6.9 के साथ उबंटू संस्करण पुराना है, लेकिन यह ठीक काम करता है।
जकूजी

1
Sha1 के बजाय md5 ... यकीन नहीं होता कि मैं कैसे चूक गया। यह वास्तव में मैचिंग आउटपुट देता है।
स्टोकेस्टिक

मेरी समस्या इसकी उलट है। मेरे पास md5 है और दूसरा प्रारूप चाहिए। मैं इसे कैसे लूं?
गेब्रियल स्टेपल्स

1
Ubuntu पर कमांड निष्पादित होने पर काम करता है। जब सेंटो पर कमांड निष्पादित होता है तो काम नहीं करता है।
मैरिनोस एन

4

जैसा कि यह पता चला है, SSH रसोई की किताब में पुराने हेक्स प्रारूप में मैन्युअल रूप से चाबियाँ बनाने का एक तरीका है। मैं freebsd सर्वर पर इसका इस्तेमाल किया।

awk '{प्रिंट $ 2}' key.pub | base64 -d | md5 | sed 's /../&:/ जी; s /: * $ // '

इसे तोड़ना:

awk '{प्रिंट $ 2}' key.pub

"key.pub" में दूसरा (स्पेस सेपरेटेड) कॉलम प्रिंट करें, जो कि स्वयं की कुंजी है

base64 -d

कुंजी base64 एन्कोडेड है। यह कुंजी के वास्तविक बाइट्स को आउटपुट करेगा

md5

यह 'md5sum -b' के बराबर है जो sbs कुकबुक पेज पर रेसिपी में निर्दिष्ट किया गया है।

sed 's /../&:/ जी; s /: * $ // '

यहां दो सेड कमांड दिए गए हैं:

रों /../&:/ जी;

प्रत्येक जोड़े को पंक्ति में बदलें (अंत में 'जी' ध्वज के लिए धन्यवाद) उसी जोड़ी के साथ एक बृहदान्त्र द्वारा पीछा किया

s /: * $ // '

किसी भी अनुगामी बृहदान्त्र को हटा दें (एक बृहदान्त्र की जगह के बाद एक पंक्ति के अंत तक कुछ भी नहीं के साथ एक जगह के बाद)।


4

इस तरह के मामलों में मैं निम्न लिपि का उपयोग करता हूं (डेबियन और उबंटू पर परीक्षण):

#!/bin/sh

# Gather the public ssh host keys for the given host
# and for each key print the fingerprint in hex format using the given
# checksum command (e.g. md5sum, sha256sum, ...)

if [ "$#" != 2 ]; then
  echo "usage: $0 hostname checksum_command"
  exit 1
fi

ssh-keyscan $1 2>/dev/null | while read -r line; do
  echo "Scanned key:"
  echo $line
  echo "$2 fingerprint:"
  echo $line | awk '{print $3}' | base64 -d | $2 -b | awk '{print $1}' | sed 's/../&:/g' | sed 's/:$//'
  echo
done

उदाहरण का उपयोग:

$ myscript host.example.com md5sum
Scanned key:
host.example.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJUXq7vpcEpnZQxxiLw/tdg8ui4LoqbW1O5nGyLtGw49
md5sum fingerprint:
6c:ef:26:f7:98:ad:ed:5b:cc:ff:83:13:46:c9:f6:79

Scanned key:
host.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC4aLMajBvisnWNR2VX5K1KEkNeRmzlcs+svbY6/DiumMTZNtqB5duZjGkMmEbIclHaT7rQG9efAWsNhai5cJVRZ4VX1Gu/TLycEk4OY56MrrWjQYweSUr/W6E0eVCf7gh/ym2vMcevct4373fGDdlogk9Wa97lDV6PUXRy/znxRlo3tBc6KMOZIBoPu8UjeLr2ZPNPjO6hXX/96HbYfboxjhMl5eb8AWR0MGd4qU7RZZa2XhT4/4eSo8h9gEq8V3tasB24fMdw3K+HRiDyZm8uoNq+IrJlC22pBpzxRQtsv0Nd+uC5pK/UPVI3AFfdHMrmn7IHRio8aEaTloM6MRysGMtXE0kFQ/pV2U3TBmK/9wxID83qMDsQeUH4oTyjSJ0dCBuqgVQUg44z5qXVOK7gruvZSTyH7DsIyAXhlvLNwdtXPJ4HPQ90ZxLpiFWYgSPErQgbfgKeFkoSQiSP1M+UMkITCGRKMeUeDINheRJh/5y8+C3DjE54xyI4903ztyI7HqgVTOOFCtf+dlhCuS6+J20PFXEHDMdGCwmPQrKOG9Rb4NBxuvtn7MxJnwnlIu3nhDjr8SlZDOTvuK+bLpc4AZwEsNY7ANKFvj2mqE6hjkhu+x7khg84VQ6BKOmHIQnMrCpqICaNgB7Vz2d183BETrnfKQaPh79G5cQox5vwvw==
md5sum fingerprint:
b2:9c:cd:30:b1:38:e3:d1:17:d6:73:eb:03:9a:80:83

$ myscript host.example.com sha256sum
Scanned key:
host.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC4aLMajBvisnWNR2VX5K1KEkNeRmzlcs+svbY6/DiumMTZNtqB5duZjGkMmEbIclHaT7rQG9efAWsNhai5cJVRZ4VX1Gu/TLycEk4OY56MrrWjQYweSUr/W6E0eVCf7gh/ym2vMcevct4373fGDdlogk9Wa97lDV6PUXRy/znxRlo3tBc6KMOZIBoPu8UjeLr2ZPNPjO6hXX/96HbYfboxjhMl5eb8AWR0MGd4qU7RZZa2XhT4/4eSo8h9gEq8V3tasB24fMdw3K+HRiDyZm8uoNq+IrJlC22pBpzxRQtsv0Nd+uC5pK/UPVI3AFfdHMrmn7IHRio8aEaTloM6MRysGMtXE0kFQ/pV2U3TBmK/9wxID83qMDsQeUH4oTyjSJ0dCBuqgVQUg44z5qXVOK7gruvZSTyH7DsIyAXhlvLNwdtXPJ4HPQ90ZxLpiFWYgSPErQgbfgKeFkoSQiSP1M+UMkITCGRKMeUeDINheRJh/5y8+C3DjE54xyI4903ztyI7HqgVTOOFCtf+dlhCuS6+J20PFXEHDMdGCwmPQrKOG9Rb4NBxuvtn7MxJnwnlIu3nhDjr8SlZDOTvuK+bLpc4AZwEsNY7ANKFvj2mqE6hjkhu+x7khg84VQ6BKOmHIQnMrCpqICaNgB7Vz2d183BETrnfKQaPh79G5cQox5vwvw==
sha256sum fingerprint:
f4:61:58:e4:90:65:c4:70:98:7f:d1:40:0a:d8:d9:79:14:e6:91:dc:b6:ed:91:8c:c0:df:d9:65:db:dd:a0:18

Scanned key:
host.example.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJUXq7vpcEpnZQxxiLw/tdg8ui4LoqbW1O5nGyLtGw49
sha256sum fingerprint:
4b:73:d1:d7:80:87:46:64:56:71:64:10:7a:66:83:9b:c7:58:39:0b:16:74:dd:9b:d9:4b:e5:d5:61:7e:99:45
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.