<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://nick-black.com/dankwiki/index.php?action=history&amp;feed=atom&amp;title=SSHFP</id>
	<title>SSHFP - revision history</title>
	<link rel="self" type="application/atom+xml" href="https://nick-black.com/dankwiki/index.php?action=history&amp;feed=atom&amp;title=SSHFP"/>
	<link rel="alternate" type="text/html" href="https://nick-black.com/dankwiki/index.php?title=SSHFP&amp;action=history"/>
	<updated>2026-07-06T02:01:11Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://nick-black.com/dankwiki/index.php?title=SSHFP&amp;diff=4273&amp;oldid=prev</id>
		<title>Dank at 04:19, 28 August 2011</title>
		<link rel="alternate" type="text/html" href="https://nick-black.com/dankwiki/index.php?title=SSHFP&amp;diff=4273&amp;oldid=prev"/>
		<updated>2011-08-28T04:19:34Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 04:19, 28 August 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SSHFP records allow SSH host keys (see [http://tools.ietf.org/html/rfc4253 RFC 4253]) to be published via the Domain Name Service. An interesting benefit is that, should SSHFP lookup be the only allowed method of authenticating a host key, keys can be revoked by removing them from DNS. They are defined in [http://tools.ietf.org/html/rfc4255 RFC 4255]. It is resource record (RR) type 44 (0x2C).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SSHFP records allow SSH host keys (see [http://tools.ietf.org/html/rfc4253 RFC 4253]) to be published via the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[DNS|&lt;/ins&gt;Domain Name Service&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;. An interesting benefit is that, should SSHFP lookup be the only allowed method of authenticating a host key, keys can be revoked by removing them from DNS. They are defined in [http://tools.ietf.org/html/rfc4255 RFC 4255]. It is resource record (RR) type 44 (0x2C).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;       1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;       1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikidb:diff:1.41:old-3759:rev-4273:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Dank</name></author>
	</entry>
	<entry>
		<id>https://nick-black.com/dankwiki/index.php?title=SSHFP&amp;diff=3759&amp;oldid=prev</id>
		<title>Dank at 02:24, 20 May 2011</title>
		<link rel="alternate" type="text/html" href="https://nick-black.com/dankwiki/index.php?title=SSHFP&amp;diff=3759&amp;oldid=prev"/>
		<updated>2011-05-20T02:24:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 02:24, 20 May 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l59&quot;&gt;Line 59:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 59:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;printf(&amp;quot;:%s:44:%s:\n&amp;quot;, $host, $out);&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;printf(&amp;quot;:%s:44:%s:\n&amp;quot;, $host, $out);&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[CATEGORY: Networking]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikidb:diff:1.41:old-153:rev-3759:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Dank</name></author>
	</entry>
	<entry>
		<id>https://nick-black.com/dankwiki/index.php?title=SSHFP&amp;diff=153&amp;oldid=prev</id>
		<title>WikiSysop: 1 revision</title>
		<link rel="alternate" type="text/html" href="https://nick-black.com/dankwiki/index.php?title=SSHFP&amp;diff=153&amp;oldid=prev"/>
		<updated>2009-01-28T07:32:16Z</updated>

		<summary type="html">&lt;p&gt;1 revision&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 07:32, 28 January 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>WikiSysop</name></author>
	</entry>
	<entry>
		<id>https://nick-black.com/dankwiki/index.php?title=SSHFP&amp;diff=152&amp;oldid=prev</id>
		<title>Dank at 01:00, 14 July 2008</title>
		<link rel="alternate" type="text/html" href="https://nick-black.com/dankwiki/index.php?title=SSHFP&amp;diff=152&amp;oldid=prev"/>
		<updated>2008-07-14T01:00:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;SSHFP records allow SSH host keys (see [http://tools.ietf.org/html/rfc4253 RFC 4253]) to be published via the Domain Name Service. An interesting benefit is that, should SSHFP lookup be the only allowed method of authenticating a host key, keys can be revoked by removing them from DNS. They are defined in [http://tools.ietf.org/html/rfc4255 RFC 4255]. It is resource record (RR) type 44 (0x2C).&lt;br /&gt;
&amp;lt;pre&amp;gt;       1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3&lt;br /&gt;
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1&lt;br /&gt;
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&lt;br /&gt;
       |   algorithm   |    fp type    |                               /&lt;br /&gt;
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               /&lt;br /&gt;
       /                                                               /&lt;br /&gt;
       /                          fingerprint                          /&lt;br /&gt;
       /                                                               /&lt;br /&gt;
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Algorithm: 1 for RSA, 2 for DSS&lt;br /&gt;
* Fingerprint Type: 1 for SHA-1&lt;br /&gt;
&lt;br /&gt;
SSHFP records can be looked up via &amp;lt;tt&amp;gt;dig -t sshfp&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;[hoare](0) $ dig +short -t sshfp svn.research.sys&lt;br /&gt;
1 1 CC96EE17FF88BB18AC8994342AE2B24185BA1B26&lt;br /&gt;
[hoare](0) $&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On [[FreeBSD]], the [http://www.freebsdports.info/ports/dns/sshfp.html dns/sshfp] port supplies [http://www.xelerance.com/software/sshfp/ sshfp]; [[Debian]] added the [http://packages.debian.org/sid/sshfp sshfp package] 2008-07-13. This tool generates SSHFP output from &amp;lt;tt&amp;gt;ssh-keyscan&amp;lt;/tt&amp;gt; or KnownHosts files:&lt;br /&gt;
&amp;lt;pre&amp;gt;[prometheus](0) $ /usr/local/bin/sshfp ctapd03.research.sys&lt;br /&gt;
ctapd03.research.sys IN SSHFP 1 1 443e23a036005c581f4f3e2e5a7949091d7318cd&lt;br /&gt;
ctapd03.research.sys IN SSHFP 2 1 86b505f00cb65359f6e377758b92359fc6dbd49b&lt;br /&gt;
[prometheus](0) $ /usr/local/bin/sshfp&lt;br /&gt;
[207.59.224.206]:7710. IN SSHFP 2 1 9eee5ceda25f86d4d9bf7f8569e576c56b69b9fc&lt;br /&gt;
hoare.research.sys. IN SSHFP 1 1 cc96ee17ff88bb18ac8994342ae2b24185ba1b26&lt;br /&gt;
localhost IN SSHFP 1 1 46c7cec5dde1fa5647591fd8636087508defea91&lt;br /&gt;
providence.scur. IN SSHFP 1 1 cc96ee17ff88bb18ac8994342ae2b24185ba1b26&lt;br /&gt;
qemfd IN SSHFP 1 1 2626a74a1c42c15ad31da0ee187992606ce135e0&lt;br /&gt;
qemfd.net. IN SSHFP 1 1 2626a74a1c42c15ad31da0ee187992606ce135e0&lt;br /&gt;
svn.research.sys. IN SSHFP 1 1 cc96ee17ff88bb18ac8994342ae2b24185ba1b26&lt;br /&gt;
[prometheus](0) $ &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Use with [[OpenSSH]] ==&lt;br /&gt;
* Set &amp;lt;tt&amp;gt;&amp;quot;VerifyHostKeyDNS yes&amp;quot;&amp;lt;/tt&amp;gt; in your SSH config file or on the command line with &amp;lt;tt&amp;gt;-OVerifyHostKeyDNS=yes&amp;lt;/tt&amp;gt; to automatically trust hosts matching a secure fingerprint in DNS. Set it to &amp;quot;ask&amp;quot; to display the fingerprint, and apply the &amp;lt;tt&amp;gt;StrictHostKeyChecking&amp;lt;/tt&amp;gt; -- this will be used for insecure fingerprints, even if &amp;lt;tt&amp;gt;VerifyHostKeyDNS&amp;lt;/tt&amp;gt; has been set to &amp;quot;yes&amp;quot;. With &amp;quot;no&amp;quot;, SSHFP records will not be consulted.&lt;br /&gt;
* To extract an SSHFP fingerprint for keys in your KnownHosts file, use &amp;lt;tt&amp;gt;ssh-keygen -r HostNameAlias&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;[recombinator](0) $ ssh-keygen -r qemfd.net&lt;br /&gt;
qemfd.net IN SSHFP 1 1 2626a74a1c42c15ad31da0ee187992606ce135e0&lt;br /&gt;
qemfd.net IN SSHFP 2 1 4193db02ecc3acd85f9abbaf71c8945ebe7f6067&lt;br /&gt;
[recombinator](0) $&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Use with djbdns ==&lt;br /&gt;
* Use the generic record format, &amp;#039;&amp;#039;:fqdn:n:rdata:ttl:timestamp:lo&amp;#039;&amp;#039; (see http://cr.yp.to/djbdns/tinydns-data.html)&lt;br /&gt;
* Sample zone data file entry:&lt;br /&gt;
&amp;lt;pre&amp;gt;:qemfd.net:44:\001\001\046\046\247\112\034\102\301\132\323\035\240\356\030\171\222\140\154\341\065\340:&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The following perl script (courtesy of [mailto:henning@openbsd.org Henning Brauer]) will write a djbdns record for the RSA key at &amp;lt;tt&amp;gt;/etc/ssh/ssh_host_rsa_key.pub&amp;lt;/tt&amp;gt; (it should be trivial to use &amp;lt;tt&amp;gt;ssh-keyscan&amp;lt;/tt&amp;gt;, instead) to stdout (invoke with the desired FQDN as the single argument):&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/usr/bin/perl&lt;br /&gt;
&lt;br /&gt;
use strict;&lt;br /&gt;
&lt;br /&gt;
open IN, &amp;quot;ssh-keygen -f /etc/ssh/ssh_host_rsa_key.pub -r $ARGV[0] |&amp;quot;;&lt;br /&gt;
my $FP = &amp;lt;IN&amp;gt;;&lt;br /&gt;
close IN;&lt;br /&gt;
chop $FP;&lt;br /&gt;
my ($host, $in, $sshfp, $alg, $fptype, $fp) = split &amp;quot; &amp;quot;, $FP;&lt;br /&gt;
my $out = sprintf(&amp;quot;\\%03o\\%03o&amp;quot;, $alg, $fptype);&lt;br /&gt;
for (my $i = 0; $i &amp;lt; length($fp); $i += 2) {&lt;br /&gt;
	$out .= sprintf(&amp;quot;\\%03o&amp;quot;, hex substr($fp, $i, 2));&lt;br /&gt;
}&lt;br /&gt;
printf(&amp;quot;:%s:44:%s:\n&amp;quot;, $host, $out);&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dank</name></author>
	</entry>
</feed>