|
|
(107 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
| = ssh:fingerprints =
| | '''Fingerabdruck eines SSH-Servers prüfen''' |
| Wenn Sie zum ersten Mal eine Verbindung zu einem Computer herstellen, haben Sie den Fingerabdruck nicht in Ihren bekannten_hosts keinen , also hat ssh Vergleich, also fragt es Sie. Diese Seite beschreibt Möglichkeiten, wie Sie mehr tun können, als nur blind sagen Ja zu .
| |
|
| |
|
| == Fingerprint manuell prüfen == | | == Beschreibung == |
| Wenn Sie zum ersten Mal eine Verbindung zu einem Computer herstellen, werden Sie darauf hingewiesen, dass die Authentizität nicht festgestellt werden kann und erhalten einen Schlüssel-Fingerabdruck zur Überprüfung. Etwas wie das:
| | Die Überprüfung der Authentizität Ihres Servers ist wichtig, wenn Sie sich zum ersten Mal mit ihm verbinden |
|
| |
|
| Die Echtheit des Hosts 'mint.phcomp.co.uk (78.32.209.33)' kann nicht festgestellt werden.
| | === Authentizität eines entfernten Hosts === |
| Der Fingerabdruck des RSA-Schlüssels lautet 6a:de:e0:af:56:f8:0c:04:11:5b:ef:4d:49:ad:09:23.
| | ; Warum die SSH-Fingerabdruckprüfung wichtig ist |
| Möchten Sie die Verbindung wirklich fortsetzen (ja/nein)? Nein
| | SSH-Verbindungen sind am verwundbarsten, wenn Sie sich zum ersten Mal mit einem Server verbinden |
| | * Nachdem Sie zum ersten Mal eine Verbindung zu einem Server hergestellt haben, speichert der SSH-Client seinen Fingerabdruck |
|
| |
|
| Möglicherweise stellen Sie fest, dass der Fingerabdruck in einem anderen Format angezeigt wird – lesen Sie einfach weiter.
| | * Wenn sich dieser Fingerabdruck dann ändert, weil jemand versucht, Sie mit einem bösartigen Server zu verbinden, wird Ihr SSH-Client Sie warnen, dass sich der Fingerabdruck geändert hat |
|
| |
|
| Um den Fingerabdruck überprüfen zu können, müssen Sie wissen, was es ist. Sie werden wahrscheinlich die finden PUB Dateien in / etc / ssh / die enthalten [https://www.phcomp.co.uk/Tutorials/Unix-And-Linux/ssh-check-server-fingerprint.html#KeyTypes RSA & DSA Schlüssel ]. Dadurch werden die Fingerabdrücke generiert, die Sie überprüfen können:
| | Wenn Sie sich zum ersten Mal mit einem Server verbinden, war Ihr Client nicht in der Lage, seinen Fingerabdruck zu protokollieren und zu überprüfen, ob er korrekt ist |
| cd /etc/ssh
| | * Daher kann ein Angreifer erfolgreich einen Man-in-the-Middle-Angriff durchführen |
| für Datei in *sa_key.pub
| | * Die einzige Möglichkeit, um sicherzustellen, dass Sie sich von Anfang an mit dem richtigen Server verbinden, besteht darin, den Fingerabdruck Ihres SSH-Schlüssels manuell zu überprüfen |
| do ssh-keygen -lf $file
| |
| getan
| |
|
| |
|
| Es macht wenig Sinn, dies zu tun, nachdem Sie sich eingeloggt haben, ein ausreichend genialer Mallory könnte das, was die oben Generierten im Handumdrehen erzeugen, so ändern, dass Sie sehen, was er Ihnen zeigen möchte. Dies muss erledigt vorher werden und Sie können es dann mit dem, was Sie sehen, überprüfen. Sie können die Fingerabdrücke ausdrucken und in Ihrer Aktentasche oder Brieftasche aufbewahren.
| | == Fingerabdruck eines SSH-Schlüssels überprüfen == |
| | Bevor Sie Ihren Fingerabdruck überprüfen können, müssen Sie den dafür verwendeten Algorithmus kennen |
| | * Dieser sollte aus dem Inhalt Ihrer Nachricht hervorgehen |
| | <code>Die Authentizität des Hosts '172.86.75.163 (172.86.75.163)' kann nicht festgestellt werden.ED25519 key fingerprint is SHA256:NTw36MQjDxsHlxC/Xso5yKMlKJu93uYknRx2LEaqk7I.This key is not known by any other namesSind Sie sicher, dass Sie die Verbindung fortsetzen möchten (ja/nein/[fingerprint])?</code> |
| | Sie können sehen, dass unser Schlüssel den Algorithmus '''ED25519''' verwendet und mit '''SHA256''' gehasht wird |
| | * Sie sollten sich dies notieren, ebenso wie den Fingerabdruck selbst, in diesem Fall <code>NTw36MQjDxsHlxC/Xso5yKMlKJu93uYknRx2LEaqk7I</code> |
|
| |
|
| == Displaying fingerprints in other formats ==
| | Ihr Schlüsselalgorithmus könnte auch ECDSA, RSA und DSA sein, und Ihr Hashing-Algorithmus könnte MD5 statt SHA sein |
| Möglicherweise stellen Sie fest, dass der Fingerabdruck in einem anderen Format erstellt wird, als Sie es haben. In diesem Abschnitt erfahren Sie, wie Sie beim Verbindung den Herstellen einer ssh- Client dazu bringen, sie in verschiedenen Formaten , und wie Sie auf dem Server anzuzeigen ssh-keygen verschiedene Formatreferenzen generieren lassen.
| |
|
| |
|
| Sie müssen möglicherweise mischen und anpassen, je nachdem, was Sie vor sich haben und wo Sie Befehle ausführen können. | | === Überprüfen des Fingerabdrucks auf dem Server === |
| | Loggen Sie sich über eine vertrauenswürdige Methode in Ihren Server ein |
|
| |
|
| === Forcing MD5 hash in hexadecimal ===
| | Führen Sie den Befehl ssh-keygen aus, um den Fingerabdruck Ihres Schlüssels auszulesen |
| Dies ist das oben gezeigte Format. Sie können zwingen ssh , dies so anzuzeigen:
| | ; SHA256 |
| $ ssh -o FingerprintHash=md5 host.example.org | | ssh-keygen -lf [Datei]] |
|
| |
|
| === SHA256 in base64 ===
| | ; MD5 |
| Dieses neue Format sieht wie folgt aus:
| | ssh-keygen -E md5 -lf [Datei] |
| Die Echtheit des Hosts 'mint.phcomp.co.uk (78.32.209.33)' kann nicht festgestellt werden. | |
| Der RSA-Schlüsselfingerabdruck ist SHA256:jP0pfKJ9OAXt2F+LM7j3+BMalQ/2Koihl5eH/kli6A4.
| |
| Möchten Sie die Verbindung wirklich fortsetzen (ja/nein)?
| |
|
| |
|
| Diese können Sie anfordern mit:
| | {| class="wikitable options" |
| $ ssh -o FingerprintHash=sha256 host.example.org
| | |- |
| | ! !! Datei |
| | |- |
| | | [[ED25519]] || /etc/ssh/ssh_host_ed25519_key.pub |
| | |- |
| | | [[ECDSA]] || /etc/ssh/ssh_host_ecdsa_key.pub |
| | |- |
| | | [[RSA]] || /etc/ssh/ssh_host_rsa_key.pub |
| | |- |
| | | [[DSA]] || /etc/ssh/ssh_host_dsa_key.pub |
| | |} |
|
| |
|
| Sie können ssh-keygen anfordern , um es anzuzeigen:
| | ; Beispiel |
| $ ssh-keygen -l -E sha256 -f $file | | ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub |
| | 256 SHA256:NTw36MQjDxsHlxC/Xso5yKMlKJu93uYknRx2LEaqk7I root@6311ad8b487e6f00018c5cd1 (ED25519) |
|
| |
|
| Dies wird in OpenSSH 6.8 und höher verwendet. Der FingerprintHash ist in alten Versionen nicht verfügbar.
| | Wenn die Ausgabe nicht mit dem Fingerabdruck übereinstimmt, den Sie zuvor notiert haben, '''stellen Sie keine Verbindung zum Server her!''' |
|
| |
|
| == ASCII Art Visual Host Key ==
| | [[Kategorie:SSH]] |
| Dies zeigt den Hostschlüssel in einem Kästchen an und ist hoffentlich leichter zu erkennen als eine Zahlenfolge. Es kann verwendet werden, um sowohl MD5- als auch SHA256-Schlüssel anzuzeigen. Es sieht aus wie das:
| |
| | |
| Die Echtheit des Hosts 'mint.phcomp.co.uk (78.32.209.33)' kann nicht festgestellt werden.
| |
| Der RSA-Schlüsselfingerabdruck ist SHA256:jP0pfKJ9OAXt2F+LM7j3+BMalQ/2Koihl5eH/kli6A4.
| |
| +---[RSA 2048]----+
| |
| | |
| |
| | |
| |
| | . . |
| |
| | +. . <nowiki>= |</nowiki>
| |
| | . S= o + |
| |
| | .oo+.. oo|
| |
| | E.=***.= + |
| |
| | .=*=BoXo+ |
| |
| | .o+=o=+*o. |
| |
| +----[SHA256]-----+
| |
| Möchten Sie die Verbindung wirklich fortsetzen (ja/nein)?
| |
| | |
| Sie können anfordern ssh , um es so anzuzeigen:
| |
| ssh -o VisualHostKey=yes host.example.org
| |
| | |
| Sie können MD5- oder SHA256-Schlüssel anfordern, z. B.:
| |
| $ ssh -o VisualHostKey=yes -o FingerprintHash=sha256 host.example.org
| |
| | |
| Auf dem Server wird ssh-keygen angezeigt, wenn die -v angegeben wird Option . Kombinieren Sie dies mit -E md5 oder -E sha256 für den Fingerabdruck-Hash-Algorithmus:
| |
| | |
| ssh-keygen -lv -E sha256 -f $file
| |
| | |
| == Checking of a ssh server key via DNS ==
| |
| Sie können den Fingerabdruck des Serverschlüssels in DNS (Domain Name System) einfügen und von ssh erfahren, ob die beiden Fingerabdrücke übereinstimmen. Dies ist keine Garantie, aber es erschwert Mallorys Arbeit, da er sowohl DNS als auch ssh fälschen muss, was möglich ist, da nur wenige Domains implementieren [https://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions DNSSEC ].
| |
| | |
| === Configuring DNS ===
| |
| Generieren Sie die SSHFP-Fingerabdruckinformationen für den DNS:
| |
| cd /etc/ssh
| |
| für Datei in *sa_key.pub
| |
| do ssh-keygen -r freshmint.phcomp.co.uk -f $file -g
| |
| getan
| |
| freshmint.phcomp.co.uk IN TYPE44 \# 22 02 01 e8fe15b374207a2e6ee99bbbadc87ecd068c17f8
| |
| freshmint.phcomp.co.uk IN TYPE44 \# 22 01 01 e5091496bda76d015e89db0bf925ffb1b9d8facb
| |
| | |
| Die obige Ausgabe sollte für Bind-Versionen vor 9.5.0a1 verwendet werden , danach wird der SSHFP- RR-Typ verstanden:
| |
| freshmint.phcomp.co.uk IN SSHFP 02 01 e8fe15b374207a2e6ee99bbbadc87ecd068c17f8
| |
| freshmint.phcomp.co.uk IN SSHFP 01 01 e5091496bda76d015e89db0bf925ffb1b9d8facbGeben Sie die obigen 2 RR (Ressourceneinträge) in das DNS
| |
| für den Computer ein. Der komplette Datensatz für die Maschine sieht so aus: freshmint IN A 78.32.209.33
| |
| IN AAAA 2001:4d48:ad51:2f00::2:2
| |
| IN MX 10 frische Minze
| |
| IN SSHFP 1 1 b4b8f2f051a16f57f69590c7c06aeaad039a3882
| |
| IN SSHFP 2 1 ea35c2064a5fc2ec9f51da2e7c790966f9844e59
| |
| mint IN CNAME freshmintÜberprüfen Sie mit ob dieses DNS-Update korrekt ist host -a your.machine.name , . Sie sollten die SSHFP- Zeilen wie oben sehen, obwohl sie bei alten Versionen Host- möglicherweise nicht richtig angezeigt werden, sondern wie: freshmint.phcomp.co.uk. 259200 IN TYP44 \# 22 0101b4b8f2f051a16f57f69590c7c06aeaad039a3882
| |
| freshmint.phcomp.co.uk. 259200 IN TYP44 \# 22 0201ea35c2064a5fc2ec9f51da2e7c790966f9844e59
| |
| | |
| === Using the DNS SSHFP RR ===
| |
| Konfigurieren Sie Ihren lokalen ssh-Client, tun Sie dies nur für die Bearbeitung von $HOME/.ssh/config oder systemweit /etc/ssh/ssh_config (auf Minix: /usr/pkg/etc/ssh/ssh_config ):VerifyHostKeyDNS ask
| |
| | |
| Sie können dies auch in der Befehlszeile beim Verbinden angeben. Beachten Sie, wie Ihnen mitgeteilt wird, wie der DNS-Fingerabdruck übereinstimmt:
| |
| '''ssh -o VerifyHostKeyDNS=fragen freshmint.phcomp.co.uk '''
| |
| Die Authentizität des Hosts 'freshmint.phcomp.co.uk (2001:4d48:ad51:2f00::2:2)' kann nicht festgestellt werden.
| |
| Der Fingerabdruck des RSA-Schlüssels lautet 6a:de:e0:af:56:f8:0c:04:11:5b:ef:4d:49:ad:09:23.
| |
| Übereinstimmender Hostschlüssel-Fingerabdruck im DNS gefunden.
| |
| Sind Sie sicher, dass Sie die Verbindung fortsetzen möchten (ja/nein)? Wenn der Fingerabdruck im DNS nicht übereinstimmt, sehen Sie Folgendes – vielleicht haben Sie ähnliches schon einmal gesehen, aber dies ist bei einer ersten Verbindung: ssh -o VerifyHostKeyDNS=ask freshmint.phcomp.co.uk
| |
| @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@
| |
| @ WARNUNG: REMOTE HOST IDENTIFIKATION HAT SICH GEÄNDERT! @
| |
| @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@
| |
| ES IST MÖGLICH, DASS JEMAND ETWAS BÖSE TUN!
| |
| Jemand könnte Sie gerade belauschen (Man-in-the-Middle-Angriff)!
| |
| Es ist auch möglich, dass der RSA-Hostschlüssel gerade geändert wurde.
| |
| Der Fingerabdruck für den vom Remote-Host gesendeten RSA-Schlüssel lautet
| |
| 6a:de:e0:af:56:f8:0c:04:11:5b:ef:4d:49:ad:09:23.
| |
| Bitte kontaktieren Sie Ihren Systemadministrator.
| |
| Aktualisieren Sie den SSHFP-RR im DNS mit dem neuen Hostschlüssel, um diese Nachricht zu entfernen.
| |
| Die Authentizität des Hosts 'freshmint.phcomp.co.uk (2001:4d48:ad51:2f00::2:2)' kann nicht festgestellt werden.
| |
| Der Fingerabdruck des RSA-Schlüssels lautet 6a:de:e0:af:56:f8:0c:04:11:5b:ef:4d:49:ad:09:23.
| |
| Kein übereinstimmender Hostschlüssel-Fingerabdruck im DNS gefunden.
| |
| Möchten Sie die Verbindung wirklich fortsetzen (ja/nein)?
| |
| | |
| === Other things of interest ===
| |
| | |
| Passwortlose Anmeldung mit SSH ( [https://www.phcomp.co.uk/Tutorials/Unix-And-Linux/ssh-passwordless-login.html https://www.phcomp.co.uk/Tutorials/Unix-And-Linux/ssh-passwordless-login.html ])
| |
| | |
| === References ===
| |
| | |
| # OpenSSH/Cookbook ( [https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Public_Key_Authentication#Downloading_keys https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Public_Key_Authentication#Downloading_keys ])
| |
| # ssh-Manpage
| |
| # ssh-keygen-Manpage
| |
| # ssh_config-Manpage
| |
| | |
| === Technical bits ===
| |
| Sie müssen dieses Bit nicht wirklich verstehen, um das Obige zu verwenden; Wenn Sie jedoch ein technischer Nerd sind, sollten Sie es wissen.
| |
| | |
| Schlüsseltypen, dies ist die erste Zahl im SSHFP RR: # RSA — 1 — ein von Ron Rivest, Adi Shamir und Leonard Adleman erfundener Verschlüsselungsalgorithmus mit öffentlichem Schlüssel ( [http://en.wikipedia.org/wiki/RSA_%28algorithm%29 http://en.wikipedia.org/wiki/RSA_%28algorithm%29 ])
| |
| # DSA — 2 — Digitaler Signaturalgorithmus ( [http://en.wikipedia.org/wiki/Digital_Signature_Algorithm http://en.wikipedia.org/wiki/Digital_Signature_Algorithm ])
| |
| # ECDSA — 3 — Elliptic Curve Digital Signature Algorithm ( [http://en.wikipedia.org/wiki/Elliptic_Curve_DSA http://en.wikipedia.org/wiki/Elliptic_Curve_DSA ])
| |
| | |
| | |
| | |
| Wo die Schlüsseltypen verwendet werden: # SSH-Version 1 – verwendet nur RSA. Sie sollten SSH Version 1 nicht verwenden, sie gilt nicht mehr als sicher
| |
| # SSH-Version 2 – RSA & DSA
| |
| # DNS SSHFP RR — RSA, DSA & kürzlich (2012) ECDSA ( [http://www.iana.org/assignments/dns- http://www.iana.org/assignments/dns-sshfp-rr-parameters/dns-sshfp-rr-parameters.xml ])
| |
| # Die zweite Zahl im SSHFP RR ist der Fingerabdrucktyp:
| |
| # SHA-1 — 1 — sicherer Hash-Algorithmus 1 ein 160-Bit-Nachrichtenauszug ( [http://en.wikipedia.org/wiki/Sha-1 http://en.wikipedia.org/wiki/Sha-1 ])
| |
| # SHA-256 — 2 — sichere Hash-Algorithmus 2 Familie ein 256-Bit-Nachrichtenauszug ( [http://en.wikipedia.org/wiki/Sha-256 http://en.wikipedia.org/wiki/Sha-256 ])
| |
| | |
| = Hintergrund =
| |
| * Erhöhen Sie die Sicherheit, indem Sie die Identität des Computers überprüfen, mit dem Sie sich mit ssh per Auge und mit SSHFP in DNS verbinden.
| |
| * [http://en.wikipedia.org/wiki/Secure_Shell Mit ssh ]können Sie eine Verbindung zu einem Remote-Computer herstellen, wobei die Daten zwischen den beiden Computern verschlüsselt werden. Sie können dann sicher tun: Kommandozeilen-Login, Dateikopie, Tunnel anderer Protokolle (zB: rsync, X11), ... Sie authentifizieren sich entweder durch Eingabe eines Passworts oder [https://www.phcomp.co.uk/Tutorials/Unix-And-Linux/ssh-passwordless-login.html Schlüsselaustausch ].
| |
| * Eine große Schwachstelle ist ein [http://en.wikipedia.org/wiki/Man-in-the-middle_attack Man-in-the-Middle-Angriff, ]bei dem eine böswillige Snooping-Einheit (Mallory) zwischen Ihnen und dem Remote-Computer den gesamten Datenverkehr abfängt, entschlüsselt und erneut verschlüsselt, bevor er weitergesendet wird. Mallory kann dies schnell genug tun, sodass Sie sich seiner Existenz nicht bewusst sind.
| |
| * Zum Schutz gegen dem Ihr ssh Programm prüft die Fernbedienung des SSH Servers Fingerabdruck mit dem Fingerabdruck vom letzten Mal gespeichert angeschlossen. Wenn sich der Fingerabdruck geändert hat, werden Sie gewarnt und gefragt, ob Sie fortfahren möchten. In [http://en.wikipedia.org/wiki/Openssh openssh ](dem ssh, das auf den meisten Linux-Systemen verwendet wird) wird dieser Fingerabdruck in $HOME/.ssh/known_hosts gespeichert .
| |
| * Der Fingerabdruck ist eine Kurzversion des öffentlichen Schlüssels des Servers; Es ist für Sie einfacher zu überprüfen als der vollständige Schlüssel. Es ist sehr schwer, einen anderen öffentlichen Schlüssel mit demselben Fingerabdruck zu fälschen.
| |
| | |
| [[Category:Netzwerke:Informationssicherheit]]
| |
| [[Category:SSH]]
| |
Fingerabdruck eines SSH-Servers prüfen
Beschreibung
Die Überprüfung der Authentizität Ihres Servers ist wichtig, wenn Sie sich zum ersten Mal mit ihm verbinden
Authentizität eines entfernten Hosts
- Warum die SSH-Fingerabdruckprüfung wichtig ist
SSH-Verbindungen sind am verwundbarsten, wenn Sie sich zum ersten Mal mit einem Server verbinden
- Nachdem Sie zum ersten Mal eine Verbindung zu einem Server hergestellt haben, speichert der SSH-Client seinen Fingerabdruck
- Wenn sich dieser Fingerabdruck dann ändert, weil jemand versucht, Sie mit einem bösartigen Server zu verbinden, wird Ihr SSH-Client Sie warnen, dass sich der Fingerabdruck geändert hat
Wenn Sie sich zum ersten Mal mit einem Server verbinden, war Ihr Client nicht in der Lage, seinen Fingerabdruck zu protokollieren und zu überprüfen, ob er korrekt ist
- Daher kann ein Angreifer erfolgreich einen Man-in-the-Middle-Angriff durchführen
- Die einzige Möglichkeit, um sicherzustellen, dass Sie sich von Anfang an mit dem richtigen Server verbinden, besteht darin, den Fingerabdruck Ihres SSH-Schlüssels manuell zu überprüfen
Fingerabdruck eines SSH-Schlüssels überprüfen
Bevor Sie Ihren Fingerabdruck überprüfen können, müssen Sie den dafür verwendeten Algorithmus kennen
- Dieser sollte aus dem Inhalt Ihrer Nachricht hervorgehen
Die Authentizität des Hosts '172.86.75.163 (172.86.75.163)' kann nicht festgestellt werden.ED25519 key fingerprint is SHA256:NTw36MQjDxsHlxC/Xso5yKMlKJu93uYknRx2LEaqk7I.This key is not known by any other namesSind Sie sicher, dass Sie die Verbindung fortsetzen möchten (ja/nein/[fingerprint])?
Sie können sehen, dass unser Schlüssel den Algorithmus ED25519 verwendet und mit SHA256 gehasht wird
- Sie sollten sich dies notieren, ebenso wie den Fingerabdruck selbst, in diesem Fall
NTw36MQjDxsHlxC/Xso5yKMlKJu93uYknRx2LEaqk7I
Ihr Schlüsselalgorithmus könnte auch ECDSA, RSA und DSA sein, und Ihr Hashing-Algorithmus könnte MD5 statt SHA sein
Überprüfen des Fingerabdrucks auf dem Server
Loggen Sie sich über eine vertrauenswürdige Methode in Ihren Server ein
Führen Sie den Befehl ssh-keygen aus, um den Fingerabdruck Ihres Schlüssels auszulesen
- SHA256
ssh-keygen -lf [Datei]]
- MD5
ssh-keygen -E md5 -lf [Datei]
|
Datei
|
ED25519 |
/etc/ssh/ssh_host_ed25519_key.pub
|
ECDSA |
/etc/ssh/ssh_host_ecdsa_key.pub
|
RSA |
/etc/ssh/ssh_host_rsa_key.pub
|
DSA |
/etc/ssh/ssh_host_dsa_key.pub
|
- Beispiel
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
256 SHA256:NTw36MQjDxsHlxC/Xso5yKMlKJu93uYknRx2LEaqk7I root@6311ad8b487e6f00018c5cd1 (ED25519)
Wenn die Ausgabe nicht mit dem Fingerabdruck übereinstimmt, den Sie zuvor notiert haben, stellen Sie keine Verbindung zum Server her!