logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

sshfp - Generate SSHFP DNS records from knownhosts files or ssh-keyscan

Authors

       Paul Wouters <pwouters@redhat.com>, Jacob Appelbaum <jacob@appelbaum.net>, James Brown <jbrown@yelp.com>

Bugs

       if a domain contains non-working glue A records, then ssh-keyscan aborts instead of skipping the single
       broken entry.

       This program can look up hashed hostnames in a known_hosts file if a recent-enough ssh-keygen is present

Description

       sshfp generates RFC-4255 SSHFP DNS records based on the public keys stored in a known_hosts file, which
       implies the user has previously trusted this key, or public keys can be obtained by using ssh-keyscan
       (1). Using ssh-keyscan (1) implies a secure path to connect to the hosts being scanned. It also implies a
       trust in the DNS to obtain the IP address of the hostname to be scanned. If the nameserver of the domain
       allows zone transfers (AXFR), an entire domain can be processed for all its A records.

Examples

       typical usage:

       sshfp (implies -k -a)

       sshfp -a -d (implies -k)

       sshfp -k bofh.nohats.ca (from known_hosts)

       sshfp -s bofh.nohats.ca (from a scan to the host)

       sshfp -k ~paul/.ssh/known_hosts bofh.nohats.ca www.openswan.org -o /tmp/mysshfp.txt

       sshfp -a -d -d nohats.ca -n ns0.nohats.ca >> /var/named/primary/nohats.ca

Files

~/.ssh/known_hosts

Name

       sshfp - Generate SSHFP DNS records from knownhosts files or ssh-keyscan

Options

-s/--scan <hostname1> [hostname2 ...]
           Scan hosts or domain for public SSH keys using ssh-keyscan

       -k/--knownhosts<knownhosts_file><hostname1>[hostname2...]
           Obtain public SSH keys from a known_hosts file. Defaults to using ~/.ssh/known_hosts-a/--all
           Scan all hosts in the known_hosts file when used with -k. When used with -s, it will attempt a zone
           transfer (AXFR) to obtain all A records in the domain specified.

       -d/--trailing-dot
           Add a trailing dot to the hostname in the SSHFP records. It is not possible to determine whether a
           known_hosts or dns query is for a FQDN (eg www.redhat.com) or not (eg www) or not (unless -d
           domainname -a is used, in which case a trailing dot is always appended). Non-FQDN get their
           domainname appended through /etc/resolv.conf These non-FQDN will happen when using a non-FQDN (eg
           sshfp -k www) or known_hosts entries obtained by running ssh www.sub where .domain.com is implied.
           When -d is used, all hostnames not ending with a dot, that at least contain two parts in their
           hostname (eg www.sub but not www get a trailing dot. Note that the output of sshfp can also just be
           manually edited for trailing dots.

       -o/--output <filename>
           Write to filename instead of stdout

       -p/--port <portnumber>
           Use portnumber for scanning. Note that portnumbers do NOT appear in SSHFP records.

       -h/--help
           Output help information and exit.

       -v/--version
           Output version information and exit.

       -q/--quiet
           Output less miscellany to stderr

Requirements

       sshfp requires python-dns (http://www.pythondns.org)

       Fedora: yum install python-dns

       Debian: apt-get install python-dnspython

See Also

ssh-keyscan(1) ssh(1) tlsa(1) and RFC-4255

Syntax

       sshfp [-k <knownhosts_file>] [-d] [-a] [--type <algo>] [--digest <digest>] [<host1> [host2...]]

       sshfp -s [-p <port>] [-d] [-a] [--type <algo>] [--digest <digest>] [-n<nameserver>]<domain1> [domain2]
       <host1> [host2...] >

See Also