summaryrefslogtreecommitdiff
path: root/doc/apt-key.8.xml
blob: 31bd3d862c49f9b2989d6d53b41930d589fde6ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % aptent SYSTEM "apt.ent"> %aptent;
<!ENTITY % aptverbatiment SYSTEM "apt-verbatim.ent"> %aptverbatiment;
<!ENTITY % aptvendor SYSTEM "apt-vendor.ent"> %aptvendor;
]>

<refentry>
 <refentryinfo>
   &apt-author.jgunthorpe;
   &apt-author.team;
   &apt-email;
   &apt-product;
   <!-- The last update date -->
   <date>2016-11-22T00:00:00Z</date>
 </refentryinfo>

 <refmeta>
   <refentrytitle>apt-key</refentrytitle>
   <manvolnum>8</manvolnum>
   <refmiscinfo class="manual">APT</refmiscinfo>
 </refmeta>
 
 <!-- Man page title -->
 <refnamediv>
    <refname>apt-key</refname>
    <refpurpose>APT key management utility</refpurpose>
 </refnamediv>

 &synopsis-command-apt-key;

 <refsect1><title>Description</title>
   <para>
   <command>apt-key</command> is used to manage the list of keys used
   by apt to authenticate packages.  Packages which have been
   authenticated using these keys will be considered trusted.
   </para>
   <para>
   Note that if usage of <command>apt-key</command> is desired the additional
   installation of the GNU Privacy Guard suite (packaged in
   <package>gnupg</package>) is required. For this reason alone the programmatic
   usage (especially in package maintainer scripts!) is strongly discouraged.
   Further more the output format of all commands is undefined and can and does
   change whenever the underlying commands change. <command>apt-key</command> will
   try to detect such usage and generates warnings on stderr in these cases.
   </para>
</refsect1>

<refsect1><title>Supported keyring files</title>
<para>apt-key supports only the binary OpenPGP format (also known as "GPG key
   public ring") in files with the "<literal>gpg</literal>" extension, not
   the keybox database format introduced in newer &gpg; versions as default
   for keyring files. Binary keyring files intended to be used with any apt
   version should therefore always be created with <command>gpg --export</command>.
</para>
<para>Alternatively, if all systems which should be using the created keyring
   have at least apt version >= 1.4 installed, you can use the ASCII armored
   format with the "<literal>asc</literal>" extension instead which can be
   created with <command>gpg --armor --export</command>.
</para>
</refsect1>

<refsect1><title>Commands</title>
   <variablelist>
     <varlistentry><term><option>add</option> <option>&synopsis-param-filename;</option></term>
     <listitem>
     <para>
       Add a new key to the list of trusted keys.
       The key is read from the filename given with the parameter
       &synopsis-param-filename; or if the filename is <literal>-</literal>
       from standard input.
     </para>
     <para>
     It is critical that keys added manually via <command>apt-key</command> are
     verified to belong to the owner of the repositories they claim to be for
     otherwise the &apt-secure; infrastructure is completely undermined.
     </para>
     <para>
       <emphasis>Note</emphasis>: Instead of using this command a keyring
       should be placed directly in the <filename>/etc/apt/trusted.gpg.d/</filename>
       directory with a descriptive name and either "<literal>gpg</literal>" or
       "<literal>asc</literal>" as file extension.
     </para>
     </listitem>
     </varlistentry>

     <varlistentry><term><option>del</option> <option>&synopsis-param-keyid;</option></term>
     <listitem>
     <para>

       Remove a key from the list of trusted keys.

     </para>

     </listitem>
     </varlistentry>

     <varlistentry><term><option>export</option> <option>&synopsis-param-keyid;</option></term>
     <listitem>
     <para>

        Output the key &synopsis-param-keyid; to standard output.

     </para>

     </listitem>
     </varlistentry>

     <varlistentry><term><option>exportall</option></term>
     <listitem>
     <para>

        Output all trusted keys to standard output.

     </para>

     </listitem>
     </varlistentry>

     <varlistentry><term><option>list</option>, <option>finger</option></term>
     <listitem>
     <para>

       List trusted keys with fingerprints.

     </para>

     </listitem>
     </varlistentry>

     <varlistentry><term><option>adv</option></term>
     <listitem>
     <para>
     Pass advanced options to gpg. With <command>adv --recv-key</command> you
     can e.g. download key from keyservers directly into the trusted set of
     keys. Note that there are <emphasis>no</emphasis> checks performed, so it is
     easy to completely undermine the &apt-secure; infrastructure if used without
     care.
     </para>

     </listitem>
     </varlistentry>

     <varlistentry><term><option>update</option> (deprecated)</term>
     <listitem>
     <para>
       Update the local keyring with the archive keyring and remove from
       the local keyring the archive keys which are no longer valid.
       The archive keyring is shipped in the <literal>archive-keyring</literal> package of your
       distribution, e.g. the &keyring-package; package in &keyring-distro;.
     </para>
     <para>
       Note that a distribution does not need to and in fact should not use
       this command any longer and instead ship keyring files in the
       <filename>/etc/apt/trusted.gpg.d/</filename> directory directly as this
       avoids a dependency on <package>gnupg</package> and it is easier to manage
       keys by simply adding and removing files for maintainers and users alike.
     </para>
     </listitem>
     </varlistentry>
     
     <varlistentry><term><option>net-update</option></term>
     <listitem>
     <para>

       Perform an update working similarly to the <command>update</command> command above,
       but get the archive keyring from a URI instead and validate it against a master key.

       This requires an installed &wget; and an APT build configured to have
       a server to fetch from and a master keyring to validate.

       APT in Debian does not support this command, relying on
       <command>update</command> instead, but Ubuntu's APT does.

     </para>

     </listitem>
     </varlistentry>
   </variablelist>
</refsect1>

 <refsect1><title>Options</title>
<para>Note that options need to be defined before the commands described in the previous section.</para>
   <variablelist>
      <varlistentry><term><option>--keyring</option> <option>&synopsis-param-filename;</option></term>
      <listitem><para>With this option it is possible to specify a particular keyring
      file the command should operate on. The default is that a command is executed
      on the <filename>trusted.gpg</filename> file as well as on all parts in the
      <filename>trusted.gpg.d</filename> directory, though <filename>trusted.gpg</filename>
      is the primary keyring which means that e.g. new keys are added to this one.
      </para></listitem>
      </varlistentry>
   </variablelist>
 </refsect1>

 <refsect1><title>Files</title>
   <variablelist>

     &file-trustedgpg;

   </variablelist>

</refsect1>

<refsect1><title>See Also</title>
<para>
&apt-get;, &apt-secure;
</para>
</refsect1>

 &manbugs;
 &manauthor;

</refentry>