1sks(8)                      SKS OpenPGP Key server                      sks(8)
2
3
4

NAME

6       SKS - Synchronizing Key Server
7

SYNOPSIS

9       sks [options] -debug
10

DESCRIPTION

12       SKS is a OpenPGP keyserver whose goal is to provide easy to deploy,
13       decentralized, and highly reliable synchronization. That means that a
14       key submitted to one SKS server will quickly be distributed to all key
15       servers, and even wildly out-of-date servers, or servers that
16       experience spotty connectivity, can fully synchronize with rest of the
17       system.
18
19       The design of SKS is deliberately simple. The server consists of two
20       single-threaded processes. The first, "sks db", fulfills the normal
21       jobs associated with a public key server, such as answering web
22       requests. The only special functionality of "sks db" is that it keeps a
23       log summarizing the changes to the key database. "sks recon" does all
24       the work with respect to reconciling hosts databases. "sks recon" keeps
25       track of specialized summary information about the database, and can
26       use that information to efficiently determine the differences between
27       its database and that of another host.
28

FEATURES

30       Highly efficient and reliable reconciliation algorithm
31
32       Follows RFC2440 and RFC2440bis carefully - unlike PKS, SKS supports new
33       and old style packets, photoID packets, multiple subkeys, and pretty
34       much everything allowed by the RFCs.
35
36       Fully compatible with PKS system - can both send and receive syncs from
37       PKS servers, ensuring seamless connectivity.
38
39       Simple configuration:  each host just needs a (partial) list of the
40       other participating key servers. Gossip is used to distribute
41       information without putting a heavy load an any one host.
42
43       Supports HKP/web-based querying, and soon-to-be-standard machine
44       readable indices
45

OPTIONS

47       SKS binary command options are as follows:
48
49       db
50            Initiates database server.
51
52       recon
53           Initiates reconciliation server.
54
55       cleandb
56           Apply filters to all keys in database, fixing some common problems.
57
58       build
59           Build key database, including body of keys directly in database.
60
61       fastbuild -n [size] -cache [mbytes]
62           Build key database, doesn't include keys directly in database,
63           faster than build. -n specifies the mulitple of 15000 keys to read
64           in at once, and -cache specifies the database cache to use in
65           megabytes.
66
67       pbuild -cache [mbytes] -ptree_cache [mbytes]
68           Build prefix-tree database, used by reconciliation server, from key
69           database. Allows for specification of cache for key database and
70           for ptree database.
71
72       dump #keys dumpdir
73           Create a raw dump of the keys in the database.
74
75       merge
76           Adds key from key files to existing database.
77
78       drop
79           Drops key from database.
80
81       update_subkeys [-n # of updates / 1000]
82           Updates subkey keyid index to include all current keys. Only useful
83           when upgrading versions 1.0.4 or before of SKS.
84
85       help
86           Prints the help message.
87

ADDITIONAL OPTIONS

89       You won't need most of the options below for normal operation. These
90       options can be given in basedir/sksconf or as command line option for
91       the sks binary.
92
93       -debug
94           Debugging mode.
95
96       -debuglevel
97           Debugging level -- sets verbosity of logging.
98
99       -q
100            Number of bits defining a bin.
101
102       -mbar
103           Number of errors that can be corrected in one shot.
104
105       -seed
106           Seed used by RNG.
107
108       -hostname
109           Current hostname.
110
111       -d
112            Number of keys to drop at random when synchronizing.
113
114       -n
115            Multiple of 15,000 keys to load at once.
116
117       -max_internal_matches
118           Maximum number of matches for most specific word in a multi-word
119           search.
120
121       -max_matches
122           Maximum number of matches that will be returned from a query.
123
124       -max_uid_fetches
125           Maximum number of uid fetches performed in a verbose index query.
126
127       -pagesize
128           Pagesize in bytes for key db.
129
130       -cache
131           Cache size in megs for key db.
132
133       -ptree_pagesize
134           Pagesize in bytes for prefix tree db.
135
136       -ptree_cache
137           Cache size in megs for prefix tree db.
138
139       -baseport
140           Set base port number.
141
142       -recon_port
143           Set recon port number.
144
145       -recon_address
146           Set recon binding address.  Can be a list of whitespace separated
147           IP addresses.
148
149       -hkp_port
150           Set hkp port number.
151
152       -hkp_address
153           Set hkp binding address.  Can be a list of whitespace separated IP
154           addresses.
155
156       -use_port_80
157           Have the HKP interface listen on port 80, as well as the hkp_port.
158
159       -basedir
160           Set base directory.
161
162       -stdoutlog
163           Send log messages to stdout instead of log file.
164
165       -diskptree
166           Use a disk-based ptree implementation. Slower, but requires far
167           less memory.
168
169       -nodiskptree
170           Use in-mem ptree.
171
172       -max_ptree_nodes
173           Maximum number of allowed ptree nodes. Only meaningful if
174           -diskptree is set.
175
176       -prob
177           Set probability. Used for testing code only.
178
179       -recon_sync_interval
180           Set sync interval for reconserver.
181
182       -gossip_interval
183           Set time between gossips in minutes.
184
185       -dontgossip
186           Don't gossip automatically. Host will still respond to requests
187           from other hosts.
188
189       -db_sync_interval
190           Set sync interval for dbserver.
191
192       -checkpoint_interval
193           Time period between checkpoints.
194
195       -recon_checkpoint_interval
196           Time period between checkpoints for reconserver.
197
198       -ptree_thresh_mult
199           Multiple of thresh which specifies minimum node size in prefix
200           tree.
201
202       -recon_thresh_mult
203           Multiple of thresh which specifies minimum node size that is
204           included in reconciliation.
205
206       -max_recover
207           Maximum number of differences to recover in one round.
208
209       -http_fetch_size
210           Number of keys for reconserver to fetch from dbserver in one go.
211
212       -wserver_timeout
213           Timeout in seconds for webserver requests.
214
215       -reconciliation_timeout
216           Timeout for reconciliation runs in minutes.
217
218       -stat_hour
219           Hour at which to run database statistics.
220
221       -initial_stat
222           Runs database statistics calculation on boot.
223
224       -reconciliation_config_timeout
225           Set timeout in seconds for initial exchange of config info in
226           reconciliation.
227
228       -missing_keys_timeout
229           Timeout in seconds for get_missing_keys.
230
231       -command_timeout
232           Timeout in seconds for commands set over command socket.
233
234       -sendmail_cmd
235           Command used for sending mail.
236
237       -from_addr
238           From address used in synchronization emails used to communicate
239           with PKS.
240
241       -dump_new_only
242           When doing a database dump, only dump new keys, not keys already
243           contained in a keydump file.
244
245       -max_outstanding_recon_requests
246           Maximum number of outstanding requests in reconciliation.
247
248       -membership_reload_interval
249           Maximum interval (in hours) at which membership file is reloaded.
250
251       --help, -help
252           Displays list of options.
253

FILES

255       Information about important files located in your SKS basedir.
256
257       bin/sks
258           The main SKS executable.
259
260       bin/sks_add_mail
261           The executable responsible for parsing incoming mails from PKS key
262           servers.
263
264       bin/sks_build.sh
265           Script to generate an initial database.
266
267       mailsync
268           The mailsync should contains a list of email addresses of PKS
269           keyservers. This file is important, because it ensures that keys
270           submitted directly to an SKS keyserver are also forwarded to PKS
271           keyservers. IMPORTANT : don't add someone to your mailsync file
272           without getting their permission first!
273
274       membership
275           With SKS, two hosts can efficiently compare their databases then
276           repair whatever differences are found.  In order to set up
277           reconciliation, you first need to find other SKS servers that will
278           agree to gossip with you. The hostname and port of the server that
279           has agreed to do so should be added to this file.
280
281       sksconf
282           The configuration file for your SKS server.
283

EXAMPLES

285       membership
286            keyserver.ahost.org 11370 # Comments are allowed
287            keyserver.foo.org 11370   # Another host with default ports
288
289       sksconf
290            membership_reload_interval: 1
291            initial_stat:
292            hostname: keyserver.example.com
293            from_addr: pgp-public-keys@keyserver.example.com
294
295       Procmail
296            PATH=/path/of/sks/exectuables
297            :0
298            * ^Subject: incremental
299            | /path/of/sks_add_mail /path/to/sks/directory
300
301       /etc/aliases
302            pgp-public-keys:      "|/path/of/sks_add_mail /path/to/sks/directory"
303

SEE ALSO

305        The SKS website is located at http://minskyprimus.net/sks/.
306

AUTHOR

308       The first draft was written by Thomas Sjogren
309       <thomas@northernsecurity.net>.
310
311
312
3130.1                               2009-03-29                            sks(8)
Impressum