| SSH-KEYSCAN(1) General Commands Manual SSH-KEYSCAN(1) |
| |
| NAME |
| ssh-keyscan M-bM-^@M-^S gather ssh public keys |
| |
| SYNOPSIS |
| ssh-keyscan [-46cHv] [-f file] [-p port] [-T timeout] [-t type] |
| [host | addrlist namelist] ... |
| |
| DESCRIPTION |
| ssh-keyscan is a utility for gathering the public ssh host keys of a |
| number of hosts. It was designed to aid in building and verifying |
| ssh_known_hosts files. ssh-keyscan provides a minimal interface suitable |
| for use by shell and perl scripts. |
| |
| ssh-keyscan uses non-blocking socket I/O to contact as many hosts as |
| possible in parallel, so it is very efficient. The keys from a domain of |
| 1,000 hosts can be collected in tens of seconds, even when some of those |
| hosts are down or do not run ssh. For scanning, one does not need login |
| access to the machines that are being scanned, nor does the scanning |
| process involve any encryption. |
| |
| The options are as follows: |
| |
| -4 Forces ssh-keyscan to use IPv4 addresses only. |
| |
| -6 Forces ssh-keyscan to use IPv6 addresses only. |
| |
| -c Request certificates from target hosts instead of plain keys. |
| |
| -f file |
| Read hosts or M-bM-^@M-^\addrlist namelistM-bM-^@M-^] pairs from file, one per line. |
| If - is supplied instead of a filename, ssh-keyscan will read |
| hosts or M-bM-^@M-^\addrlist namelistM-bM-^@M-^] pairs from the standard input. |
| |
| -H Hash all hostnames and addresses in the output. Hashed names may |
| be used normally by ssh and sshd, but they do not reveal |
| identifying information should the file's contents be disclosed. |
| |
| -p port |
| Port to connect to on the remote host. |
| |
| -T timeout |
| Set the timeout for connection attempts. If timeout seconds have |
| elapsed since a connection was initiated to a host or since the |
| last time anything was read from that host, then the connection |
| is closed and the host in question considered unavailable. |
| Default is 5 seconds. |
| |
| -t type |
| Specifies the type of the key to fetch from the scanned hosts. |
| The possible values are M-bM-^@M-^\rsa1M-bM-^@M-^] for protocol version 1 and M-bM-^@M-^\dsaM-bM-^@M-^], |
| M-bM-^@M-^\ecdsaM-bM-^@M-^], M-bM-^@M-^\ed25519M-bM-^@M-^], or M-bM-^@M-^\rsaM-bM-^@M-^] for protocol version 2. Multiple |
| values may be specified by separating them with commas. The |
| default is to fetch M-bM-^@M-^\rsaM-bM-^@M-^], M-bM-^@M-^\ecdsaM-bM-^@M-^], and M-bM-^@M-^\ed25519M-bM-^@M-^] keys. |
| |
| -v Verbose mode. Causes ssh-keyscan to print debugging messages |
| about its progress. |
| |
| SECURITY |
| If an ssh_known_hosts file is constructed using ssh-keyscan without |
| verifying the keys, users will be vulnerable to man in the middle |
| attacks. On the other hand, if the security model allows such a risk, |
| ssh-keyscan can help in the detection of tampered keyfiles or man in the |
| middle attacks which have begun after the ssh_known_hosts file was |
| created. |
| |
| FILES |
| Input format: |
| |
| 1.2.3.4,1.2.4.4 name.my.domain,name,n.my.domain,n,1.2.3.4,1.2.4.4 |
| |
| Output format for RSA1 keys: |
| |
| host-or-namelist bits exponent modulus |
| |
| Output format for RSA, DSA, ECDSA, and Ed25519 keys: |
| |
| host-or-namelist keytype base64-encoded-key |
| |
| Where keytype is either M-bM-^@M-^\ecdsa-sha2-nistp256M-bM-^@M-^], M-bM-^@M-^\ecdsa-sha2-nistp384M-bM-^@M-^], |
| M-bM-^@M-^\ecdsa-sha2-nistp521M-bM-^@M-^], M-bM-^@M-^\ssh-ed25519M-bM-^@M-^], M-bM-^@M-^\ssh-dssM-bM-^@M-^] or M-bM-^@M-^\ssh-rsaM-bM-^@M-^]. |
| |
| /etc/ssh/ssh_known_hosts |
| |
| EXAMPLES |
| Print the rsa host key for machine hostname: |
| |
| $ ssh-keyscan hostname |
| |
| Find all hosts from the file ssh_hosts which have new or different keys |
| from those in the sorted file ssh_known_hosts: |
| |
| $ ssh-keyscan -t rsa,dsa,ecdsa,ed25519 -f ssh_hosts | \ |
| sort -u - ssh_known_hosts | diff ssh_known_hosts - |
| |
| SEE ALSO |
| ssh(1), sshd(8) |
| |
| AUTHORS |
| David Mazieres <dm@lcs.mit.edu> wrote the initial version, and Wayne |
| Davison <wayned@users.sourceforge.net> added support for protocol version |
| 2. |
| |
| BUGS |
| It generates "Connection closed by remote host" messages on the consoles |
| of all the machines it scans if the server is older than version 2.9. |
| This is because it opens a connection to the ssh port, reads the public |
| key, and drops the connection as soon as it gets the key. |
| |
| OpenBSD 6.0 November 8, 2015 OpenBSD 6.0 |