GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Holen Sie sich den Fingerabdruck des SSH-Schlüssels im (alten) Hex-Format in der neuen Version von openssh

Der Client meldet den sha1-Hash des Serverschlüssels als Folge von 16 Paaren von Hexadezimalziffern, etwa so:

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

Dies ist MD5-Hash.

Wie Sie laufen sehen können

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

erhalten Sie denselben Fingerabdruck, den Sie benötigen, ohne solche Harakiri, die Sie in Ihrer Antwort erklären.


Wie sich herausstellt, verfügt das SSH Cookbook über eine Möglichkeit, Schlüssel im älteren Hex-Format manuell zu generieren. Ich habe dies auf dem Freebsd-Server verwendet.

awk '{print $2}' key.pub | base64 -d | md5 | sed 's/../&:/g; s/:.*$//'

Aufschlüsselung:

awk '{print $2}' key.pub

Drucken Sie die zweite (durch Leerzeichen getrennte) Spalte in "key.pub" aus, die der Schlüssel selbst ist

base64 -d

Der Schlüssel ist base64-kodiert. Dadurch werden die tatsächlichen Bytes des Schlüssels ausgegeben

md5

dies ist das freebsd-Äquivalent von 'md5sum -b', das im Rezept auf der ssh-Kochbuchseite angegeben wurde

sed 's/../&:/g; s/:.*$//'

Hier gibt es zwei sed-Befehle:

s/../&:/g;

Ersetzen Sie jedes Zeichenpaar in der Zeile (dank des 'g'-Flags am Ende) durch dasselbe Paar, gefolgt von einem Doppelpunkt

s/:.*$//'

Entfernen Sie alle nachgestellten Doppelpunkte (ersetzen Sie einen Doppelpunkt gefolgt von einem Leerzeichen gefolgt von allem bis zum Ende der Zeile durch nichts).


In solchen Fällen verwende ich das folgende kleine Skript (getestet auf Debian und Ubuntu):

#!/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

Beispielverwendung:

$ 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

Linux
  1. Passwortloses SSH mit öffentlich-privaten Schlüsselpaaren

  2. So richten Sie SSH-Schlüssel ein

  3. Wie konvertiert man eine PPK-Datei in OpenSSH-Schlüssel und meldet sich mit SSH unter Linux an?

  4. Wie bekomme ich sicher die Version von Ksh?

  5. So führen Sie SSH und SCP ohne Passwort von SSH2 zu OpenSSH durch

So richten Sie eine passwortlose SSH-Anmeldung ein

So generieren Sie einen SSH-Schlüssel in Windows 10

SSH-Befehl

So erstellen Sie eine SSH-Schlüssel-Passphrase unter Linux

Führen Sie SSH und SCP ohne Passworteingabe auf openSSH aus

ssh:Fehler beim Laden des Schlüssels ./id_rsa:ungültiges Format