Ich muss SSHFP-Einträge im DNS für meinen Host einrichten. Ich habe ein bisschen gesucht, aber kein gutes Beispiel gefunden.
- Was sind SSHFP-Einträge?
- Wie sehen SSHFP-Datensätze aus?
- Wie erstelle ich SSHFP-Einträge?
SSHFP-RR-Einträge sind DNS-Einträge, die Fingerabdrücke für öffentliche Schlüssel enthalten, die für SSH verwendet werden. Sie werden hauptsächlich mit DNSSEC-fähigen Domänen verwendet. Wenn ein SSH-Client eine Verbindung zu einem Server herstellt, überprüft er den entsprechenden SSHFP-Datensatz. Wenn der Fingerabdruck der Datensätze mit den Servern übereinstimmt, ist der Server legitim und es ist sicher, eine Verbindung herzustellen.
SSHFP-Datensätze bestehen aus drei Dingen:
Ab 2015 sind in SSHFP vier verschiedene Algorithmen definiert . Jeder Algorithmus wird durch eine ganze Zahl dargestellt. Die Algorithmen sind:
In SSHFP sind ab 2012 zwei Fingerabdrucktypen definiert . Jeder Fingerabdrucktyp wird durch eine ganze Zahl dargestellt. Diese sind:
Sie können verwenden ssh-keygen
, um die Datensätze mit dem -r
Parameter gefolgt vom Hostnamen zu generieren (der sich nicht auf die Fingerabdrücke auswirkt, sodass Sie angeben können, was Sie möchten).
Verwenden ssh-keygen
und CentOS:
[root@localhost ~]# ssh-keygen -r my.domain.com
my.domain.com IN SSHFP 1 1 450c7d19d5da9a3a5b7c19992d1fbde15d8dad34
my.domain.com IN SSHFP 2 1 72d30d211ce8c464de2811e534de23b9be9b4dc4
Manchmal ssh-keygen
werden Sie nach dem Speicherort des öffentlichen Zertifikats gefragt. Wenn Sie dazu aufgefordert werden, müssen Sie ssh-keygen
mehrmals ausführen und jedes Mal ein anderes Zertifikat angeben, um sicherzustellen, dass Sie alle erforderlichen SSHFP-Datensätze generieren. Ihre öffentlichen Schlüssel befinden sich normalerweise in /etc/ssh
.
Die DNS-basierte Authentifizierung von benannten Entitäten (DANE) ( RFC 6698 ) ist ein potenzieller Nachfolger von SSHFP RR. DANE ist SSHFP RR sehr ähnlich, ist aber nicht auf SSH beschränkt. Stattdessenwird TLSA RR mit einem sehr ähnlichen Format verwendet.
ssh-keygen -r
Verarbeitet auch Datensätze vom Typ ed25519 (unter Verwendung der experimentellen Nummer 4 von iana iana.org/assignments/dns-sshfp-rr-parameters/… )Ich bin nicht sicher, ob es
ssh-keygen
mit vorhandenen Schlüsseln funktioniert. Wenn nicht, können Sie sie immer noch einfach in Ihrer Shell (die ich bevorzuge) und ohne ausgefallene Software oder Remote-Schnittstellen zusammenbauen.Ein Rekord wie erwähnt ...
... bestehen aus 6 Teilen:
Um davon Gebrauch zu machen
VerifyHostKeyDNS ask
, geben Sie normalerweise die Konfiguration Ihres SSH-Clients ein~/.ssh/config
.quelle
ssh-keygen -r
nicht erzeugen SSHFP Datensätze für vorhandene Schlüssel trotz der Tatsache , dass der Name des Befehls zur Erzeugung es nur vermuten läßt.Ältere Versionen von ssh-keygen generieren nicht alle verfügbaren Schlüssel (zB keine Unterstützung für ecdsa und sha256). Dieses Skript erstellt alle Datensätze für alle verfügbaren Schlüssel in
/etc/ssh/
:Edit: Neue Version mit PR von alex-dupuy mit * BSD-Unterstützung.
https://github.com/mindfuckup/Scripts/blob/master/sshfpgen
quelle
Wenn Sie Marionette verwenden,
facter
hat Unterstützung für eingebautsshfp
. Wenn Sie PuppetDB verwenden, können Sie diese Informationen ganz einfach für alle Ihre Hosts extrahieren.Quelle
quelle
So erhalte ich meine SSHFP-Einträge über Ansible :
quelle