blob: c9fb597ede6c86da884565a40c94c4b4f1c03cd6 [file] [log] [blame]
Darren Tucker34e314d2010-01-08 17:03:46 +11001.\" $OpenBSD: ssh-keyscan.1,v 1.27 2009/10/28 16:38:18 reyk Exp $
Ben Lindstromb22c2b82001-03-05 06:50:47 +00002.\"
3.\" Copyright 1995, 1996 by David Mazieres <dm@lcs.mit.edu>.
4.\"
5.\" Modification and redistribution in source and binary forms is
6.\" permitted provided that due credit is given to the author and the
Ben Lindstroma238f6e2001-06-09 01:30:39 +00007.\" OpenBSD project by leaving this copyright notice intact.
Ben Lindstrom36579d32001-01-29 07:39:26 +00008.\"
Darren Tucker34e314d2010-01-08 17:03:46 +11009.Dd $Mdocdate: October 28 2009 $
Ben Lindstromb22c2b82001-03-05 06:50:47 +000010.Dt SSH-KEYSCAN 1
Ben Lindstromb6434ae2000-12-05 01:15:09 +000011.Os
12.Sh NAME
13.Nm ssh-keyscan
14.Nd gather ssh public keys
15.Sh SYNOPSIS
16.Nm ssh-keyscan
Damien Miller495dca32003-04-01 21:42:14 +100017.Bk -words
Damien Miller9a2fdbd2005-03-02 12:04:01 +110018.Op Fl 46Hv
19.Op Fl f Ar file
Ben Lindstrom325e70c2001-08-06 22:41:30 +000020.Op Fl p Ar port
21.Op Fl T Ar timeout
22.Op Fl t Ar type
Darren Tucker34e314d2010-01-08 17:03:46 +110023.Op Fl V Ar rdomain
Ben Lindstrom325e70c2001-08-06 22:41:30 +000024.Op Ar host | addrlist namelist
Damien Millerc1719f72008-11-03 19:27:07 +110025.Ar ...
Damien Miller495dca32003-04-01 21:42:14 +100026.Ek
Ben Lindstromb6434ae2000-12-05 01:15:09 +000027.Sh DESCRIPTION
28.Nm
29is a utility for gathering the public ssh host keys of a number of
Damien Miller495dca32003-04-01 21:42:14 +100030hosts.
31It was designed to aid in building and verifying
Ben Lindstromb6434ae2000-12-05 01:15:09 +000032.Pa ssh_known_hosts
33files.
34.Nm
35provides a minimal interface suitable for use by shell and perl
36scripts.
37.Pp
38.Nm
39uses non-blocking socket I/O to contact as many hosts as possible in
Damien Miller495dca32003-04-01 21:42:14 +100040parallel, so it is very efficient.
41The keys from a domain of 1,000
Ben Lindstromb6434ae2000-12-05 01:15:09 +000042hosts can be collected in tens of seconds, even when some of those
Damien Miller495dca32003-04-01 21:42:14 +100043hosts are down or do not run ssh.
44For scanning, one does not need
Ben Lindstrom594e2032001-09-12 18:35:30 +000045login access to the machines that are being scanned, nor does the
46scanning process involve any encryption.
Ben Lindstrom0b5afb92001-08-06 22:01:29 +000047.Pp
48The options are as follows:
Ben Lindstromb6434ae2000-12-05 01:15:09 +000049.Bl -tag -width Ds
Damien Miller9a2fdbd2005-03-02 12:04:01 +110050.It Fl 4
51Forces
52.Nm
53to use IPv4 addresses only.
54.It Fl 6
55Forces
56.Nm
57to use IPv6 addresses only.
58.It Fl f Ar file
59Read hosts or
60.Pa addrlist namelist
61pairs from this file, one per line.
62If
63.Pa -
64is supplied instead of a filename,
65.Nm
66will read hosts or
67.Pa addrlist namelist
68pairs from the standard input.
Damien Millerdb7b8172005-03-01 21:48:03 +110069.It Fl H
70Hash all hostnames and addresses in the output.
71Hashed names may be used normally by
72.Nm ssh
73and
74.Nm sshd ,
75but they do not reveal identifying information should the file's contents
76be disclosed.
Ben Lindstrom325e70c2001-08-06 22:41:30 +000077.It Fl p Ar port
78Port to connect to on the remote host.
Ben Lindstrom8d066fb2001-09-12 17:06:13 +000079.It Fl T Ar timeout
Damien Miller495dca32003-04-01 21:42:14 +100080Set the timeout for connection attempts.
81If
Ben Lindstromb6434ae2000-12-05 01:15:09 +000082.Pa timeout
83seconds have elapsed since a connection was initiated to a host or since the
84last time anything was read from that host, then the connection is
Damien Miller495dca32003-04-01 21:42:14 +100085closed and the host in question considered unavailable.
86Default is 5 seconds.
Ben Lindstrom325e70c2001-08-06 22:41:30 +000087.It Fl t Ar type
Ben Lindstrom8d066fb2001-09-12 17:06:13 +000088Specifies the type of the key to fetch from the scanned hosts.
Ben Lindstrom325e70c2001-08-06 22:41:30 +000089The possible values are
90.Dq rsa1
91for protocol version 1 and
92.Dq rsa
93or
94.Dq dsa
95for protocol version 2.
96Multiple values may be specified by separating them with commas.
97The default is
Damien Millerbacb7fb2008-05-19 14:56:33 +100098.Dq rsa .
Darren Tucker34e314d2010-01-08 17:03:46 +110099.It Fl V Ar rdomain
100Set the routing domain.
Ben Lindstrom325e70c2001-08-06 22:41:30 +0000101.It Fl v
102Verbose mode.
103Causes
104.Nm
105to print debugging messages about its progress.
Ben Lindstromd26dcf32001-01-06 15:18:16 +0000106.El
Ben Lindstrom0b5afb92001-08-06 22:01:29 +0000107.Sh SECURITY
Darren Tuckerffe88e12006-10-18 07:53:06 +1000108If an ssh_known_hosts file is constructed using
Ben Lindstrom0b5afb92001-08-06 22:01:29 +0000109.Nm
Ben Lindstrom594e2032001-09-12 18:35:30 +0000110without verifying the keys, users will be vulnerable to
Darren Tucker3ca45082004-07-17 16:13:15 +1000111.Em man in the middle
Ben Lindstrom0b5afb92001-08-06 22:01:29 +0000112attacks.
Ben Lindstrom594e2032001-09-12 18:35:30 +0000113On the other hand, if the security model allows such a risk,
Ben Lindstrom0b5afb92001-08-06 22:01:29 +0000114.Nm
Ben Lindstrom594e2032001-09-12 18:35:30 +0000115can help in the detection of tampered keyfiles or man in the middle
116attacks which have begun after the ssh_known_hosts file was created.
Ben Lindstromb6434ae2000-12-05 01:15:09 +0000117.Sh FILES
Ben Lindstromb6434ae2000-12-05 01:15:09 +0000118.Pa Input format:
Ben Lindstrom325e70c2001-08-06 22:41:30 +0000119.Bd -literal
Ben Lindstromb6434ae2000-12-05 01:15:09 +00001201.2.3.4,1.2.4.4 name.my.domain,name,n.my.domain,n,1.2.3.4,1.2.4.4
Ben Lindstrom325e70c2001-08-06 22:41:30 +0000121.Ed
Ben Lindstromb6434ae2000-12-05 01:15:09 +0000122.Pp
Ben Lindstrom325e70c2001-08-06 22:41:30 +0000123.Pa Output format for rsa1 keys:
124.Bd -literal
Ben Lindstromb6434ae2000-12-05 01:15:09 +0000125host-or-namelist bits exponent modulus
Ben Lindstrom325e70c2001-08-06 22:41:30 +0000126.Ed
127.Pp
128.Pa Output format for rsa and dsa keys:
129.Bd -literal
130host-or-namelist keytype base64-encoded-key
131.Ed
132.Pp
133Where
134.Pa keytype
135is either
136.Dq ssh-rsa
137or
Damien Miller93506352003-05-14 13:46:33 +1000138.Dq ssh-dss .
Ben Lindstromb6434ae2000-12-05 01:15:09 +0000139.Pp
Damien Miller05eda432002-02-10 18:32:28 +1100140.Pa /etc/ssh/ssh_known_hosts
Damien Millerf1ce5052003-06-11 22:04:39 +1000141.Sh EXAMPLES
142Print the
Damien Millerb2c17d42009-01-28 16:18:03 +1100143.Pa rsa
Damien Millerf1ce5052003-06-11 22:04:39 +1000144host key for machine
145.Pa hostname :
146.Bd -literal
147$ ssh-keyscan hostname
148.Ed
149.Pp
150Find all hosts from the file
151.Pa ssh_hosts
152which have new or different keys from those in the sorted file
153.Pa ssh_known_hosts :
154.Bd -literal
155$ ssh-keyscan -t rsa,dsa -f ssh_hosts | \e
156 sort -u - ssh_known_hosts | diff ssh_known_hosts -
157.Ed
158.Sh SEE ALSO
159.Xr ssh 1 ,
160.Xr sshd 8
161.Sh AUTHORS
Darren Tucker28e8e592005-10-03 18:20:28 +1000162.An -nosplit
Damien Millerf1ce5052003-06-11 22:04:39 +1000163.An David Mazieres Aq dm@lcs.mit.edu
164wrote the initial version, and
165.An Wayne Davison Aq wayned@users.sourceforge.net
166added support for protocol version 2.
Ben Lindstromb6434ae2000-12-05 01:15:09 +0000167.Sh BUGS
168It generates "Connection closed by remote host" messages on the consoles
Ben Lindstrom325e70c2001-08-06 22:41:30 +0000169of all the machines it scans if the server is older than version 2.9.
Ben Lindstromb6434ae2000-12-05 01:15:09 +0000170This is because it opens a connection to the ssh port, reads the public
171key, and drops the connection as soon as it gets the key.