[gelöst] ssh fingerprints sind ungleich

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Frink
Beiträge: 70
Registriert: 25.11.2017 15:57:49
Lizenz eigener Beiträge: GNU Free Documentation License

[gelöst] ssh fingerprints sind ungleich

Beitrag von Frink » 02.02.2018 03:34:45

Hey,

wenn ich folgende Kommandos auf dem Client ausführe

Code: Alles auswählen

file=$(mktemp)
ssh-keyscan server > $file
ssh-keygen -l -f $file
erhalte ich ein anderes Ergebnis, als wenn ich

Code: Alles auswählen

file=$(mktemp)
ssh-keyscan localhost > $file
ssh-keygen -l -f $file
auf dem Server ausführe. Geht das noch mit rechten Dingen zu?

Viele Grüße,

Frink
Zuletzt geändert von Frink am 06.02.2018 12:51:45, insgesamt 1-mal geändert.

DeletedUserReAsG

Re: ssh fingerprints sind ungleich

Beitrag von DeletedUserReAsG » 02.02.2018 06:55:13

Verschiedene Schlüssel haben verschiedene Fingerprints. Das soll so sein.

Frink
Beiträge: 70
Registriert: 25.11.2017 15:57:49
Lizenz eigener Beiträge: GNU Free Documentation License

Re: ssh fingerprints sind ungleich

Beitrag von Frink » 02.02.2018 07:16:14

Wie kann ich denn dann verifizieren, dass der Server der richtige ist?

DeletedUserReAsG

Re: ssh fingerprints sind ungleich

Beitrag von DeletedUserReAsG » 02.02.2018 07:19:22

Entweder, du vergleichst manuell mit dem von dir beim Erstellen des Schlüssels aufgeschriebenen Fingerprint, oder du vertraust deiner ~/.ssh/known_hosts, in welche der ursprüngliche Fingerprint beim ersten Verbinden mal geschrieben wurde.

Frink
Beiträge: 70
Registriert: 25.11.2017 15:57:49
Lizenz eigener Beiträge: GNU Free Documentation License

Re: ssh fingerprints sind ungleich

Beitrag von Frink » 02.02.2018 15:58:33

Danke für die Antwort. Das Problem ist, dass sich der fingerprint des Schlüssels anscheinend geändert hat, known_hosts ist somit unbrauchbar.

Mit welchen Befehlen, erhalte ich den Fingerprint einmal serverseitig und einmal clientseitig?

Viele Grüße,

Frink

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: ssh fingerprints sind ungleich

Beitrag von Cae » 04.02.2018 08:46:34

Frink hat geschrieben: ↑ zum Beitrag ↑
02.02.2018 15:58:33
Mit welchen Befehlen, erhalte ich den Fingerprint einmal serverseitig und einmal clientseitig?

Code: Alles auswählen

server$ for f in /etc/ssh/ssh_host_*; do ssh-keygen -lf "$f"; done
client$ ssh-keygen -lF {host}
{host} steht fuer die IP, den Hostnamen oder Alias, den du SSH zum Verbinden uebergibst.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Frink
Beiträge: 70
Registriert: 25.11.2017 15:57:49
Lizenz eigener Beiträge: GNU Free Documentation License

Re: ssh fingerprints sind ungleich

Beitrag von Frink » 04.02.2018 17:04:26

Code: Alles auswählen

#  for f in /etc/ssh/ssh_host_*; do ssh-keygen -lf "$f"; done
1024 fb:81:bc:36:94:cc:4e:1e:47:2e:2a:0b:5a:95:2c:68 /etc/ssh/ssh_host_dsa_key.pub (DSA)
1024 fb:81:bc:36:94:cc:4e:1e:47:2e:2a:0b:5a:95:2c:68 /etc/ssh/ssh_host_dsa_key.pub (DSA)
256 af:3a:b7:e0:6c:35:d8:d1:89:3c:38:ea:ee:ee:46:a2 /etc/ssh/ssh_host_ecdsa_key.pub (ECDSA)
256 af:3a:b7:e0:6c:35:d8:d1:89:3c:38:ea:ee:ee:46:a2 /etc/ssh/ssh_host_ecdsa_key.pub (ECDSA)
256 5e:94:ce:87:47:c2:97:55:42:ff:13:25:8c:5f:b6:21 /etc/ssh/ssh_host_ed25519_key.pub (ED25519)
256 5e:94:ce:87:47:c2:97:55:42:ff:13:25:8c:5f:b6:21 /etc/ssh/ssh_host_ed25519_key.pub (ED25519)
2048 79:cb:b2:f5:e9:1e:b3:95:a5:5e:4f:12:fc:fd:aa:0f root@raspberrypi (RSA1)
2048 79:cb:b2:f5:e9:1e:b3:95:a5:5e:4f:12:fc:fd:aa:0f root@raspberrypi (RSA1)
2048 66:ef:69:ec:3c:5f:9c:8b:61:cb:67:c2:4d:9c:3d:a7 /etc/ssh/ssh_host_rsa_key.pub (RSA)
2048 66:ef:69:ec:3c:5f:9c:8b:61:cb:67:c2:4d:9c:3d:a7 /etc/ssh/ssh_host_rsa_key.pub (RSA)

Code: Alles auswählen

$  ssh-keygen -lF raspberrypi
# Host raspberrypi found: line 52 
raspberrypi ECDSA SHA256:aW+uffHTaKCCRCCjHG29wjLbuWKhqzrit5ErOrG4Qk8
Wie bekomme ich die ins selbe Format?

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: ssh fingerprints sind ungleich

Beitrag von Cae » 06.02.2018 12:35:24

In deinem Output wird oben der Fingerprint durch die Hashfunktion md5 gebildet, unten durch die neuere sha256-Funktion. md5 hat mittlerweile "leicht" berechenbare Kollisionen, d.h. es ist mit gewissem Aufwand moeglich, einen anderen Schluessel mit demselben Hash zu erstellen. Dies untergraebt das Pinnen per Fingerprint, weil man bei einem erfolgreichen Angriff eben nicht mehr mit seinem eigenen Server spricht, sondern unbemerkt mit dem Angreifer, dem "man in the middle". sha256 ist stabiler, d.h. man braucht gegenwaertig unrealistisch viel Rechenleistung, um eine Kollision zu erzeugen.

[1] ist eine laengliche Zusammenstellung rund um diese Frage. Neuere ssh-keygen-Versionen unterstuetzen -E md5, um das alte Format zu erzwingen. Du kannst auch auf dem Server -E sha256 testen, aber vermutlich wird die Option dort nicht unterstuetzt.

Gruss Cae

[1] https://superuser.com/questions/929566/ ... -se#929567
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Frink
Beiträge: 70
Registriert: 25.11.2017 15:57:49
Lizenz eigener Beiträge: GNU Free Documentation License

Re: ssh fingerprints sind ungleich

Beitrag von Frink » 06.02.2018 12:51:17

Vielen Dank, die Minus -E Option am Client hat funktioniert.


Viele Grüße,
Frink

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: [gelöst] ssh fingerprints sind ungleich

Beitrag von ThorstenS » 06.02.2018 21:07:56

In meiner toolbox habe ich folgendes kleines Scriptchen - das hilft dir gleich beim Lokalisieren der Dateien:

Code: Alles auswählen

#!/bin/bash                                                                                                                  

(echo -e "filename\tkeylength\tmd5-fingerprint\tcomment\tkeytype"
for i in /etc/ssh/*host*key ; do
  echo -en "$(basename $i)\t"
  ssh-keygen -E md5 -lf $i
done)|sed 's|MD5:||'|column -t
Schaut dann z.B. so aus:

Code: Alles auswählen

$ sudo ./hostKey-print
filename              keylength  md5-fingerprint                                  comment    keytype
ssh_host_ecdsa_key    256        11:ac:e3:40:54:4a:bc:49:8d:26:49:97:65:4b:c2:80  root@mobi  (ECDSA)
ssh_host_ed25519_key  256        97:82:e8:4f:d3:e9:b6:96:65:3f:f7:d2:bf:17:5c:84  root@mobi  (ED25519)
ssh_host_rsa_key      2048       74:51:9c:78:49:91:50:25:5e:46:ef:69:6f:c4:61:57  root@mobi  (RSA)
Edith: Habe das zum Anlass genommen und meinen Einzeiler ein wenig getuned.
-E gibt es erst seit stretch!

Antworten