From 4b1665fc9df8b42832681adf88985ac762aedf9f Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Sat, 23 Nov 2024 20:36:28 +0100 Subject: Stop installing apt-key, make it a test suite helper --- debian/apt.install | 1 - 1 file changed, 1 deletion(-) (limited to 'debian') diff --git a/debian/apt.install b/debian/apt.install index 07bc737fd..eb465d498 100644 --- a/debian/apt.install +++ b/debian/apt.install @@ -7,7 +7,6 @@ usr/bin/apt-cache usr/bin/apt-cdrom usr/bin/apt-config usr/bin/apt-get -usr/bin/apt-key usr/bin/apt-mark usr/lib/*/libapt-private.so* usr/lib/apt/apt-helper -- cgit v1.2.3-70-g09d2 From f7f4a4cb5c99f2bfe7a2398c406048c92c9c93b2 Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Sat, 23 Nov 2024 21:02:41 +0100 Subject: Remove the apt-key manual page and add documentation to apt-secure We move the user configuration section to the top of the manual page as that is going to be what most are interested in and rewrite it to cover all the modern ways to configure keys in a succinct way. --- debian/apt.manpages | 2 - doc/CMakeLists.txt | 1 - doc/apt-key.8.xml | 246 ------------------------------------------------- doc/apt-secure.8.xml | 56 ++++++----- doc/po4a.conf | 1 - doc/sources.list.5.xml | 4 +- 6 files changed, 37 insertions(+), 273 deletions(-) delete mode 100644 doc/apt-key.8.xml (limited to 'debian') diff --git a/debian/apt.manpages b/debian/apt.manpages index 80dbabd44..582c145ba 100644 --- a/debian/apt.manpages +++ b/debian/apt.manpages @@ -2,7 +2,6 @@ usr/share/man/*/*/apt-cache.* usr/share/man/*/*/apt-cdrom.* usr/share/man/*/*/apt-config.* usr/share/man/*/*/apt-get.* -usr/share/man/*/*/apt-key.* usr/share/man/*/*/apt-mark.* usr/share/man/*/*/apt-secure.* usr/share/man/*/*/apt-patterns.* @@ -15,7 +14,6 @@ usr/share/man/*/apt-cache.* usr/share/man/*/apt-cdrom.* usr/share/man/*/apt-config.* usr/share/man/*/apt-get.* -usr/share/man/*/apt-key.* usr/share/man/*/apt-mark.* usr/share/man/*/apt-secure.* usr/share/man/*/apt-patterns.* diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index 493c36c08..2df0ce721 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -84,7 +84,6 @@ add_docbook(apt-man MANPAGE ALL apt-extracttemplates.1.xml apt-ftparchive.1.xml apt-get.8.xml - apt-key.8.xml apt-mark.8.xml apt_preferences.5.xml apt-patterns.7.xml diff --git a/doc/apt-key.8.xml b/doc/apt-key.8.xml deleted file mode 100644 index c6c2d192e..000000000 --- a/doc/apt-key.8.xml +++ /dev/null @@ -1,246 +0,0 @@ - - %aptent; - %aptverbatiment; - %aptvendor; -]> - - - - &apt-author.jgunthorpe; - &apt-author.team; - &apt-email; - &apt-product; - - 2024-02-20T00:00:00Z - - - - apt-key - 8 - APT - - - - - apt-key - Deprecated APT key management utility - - - &synopsis-command-apt-key; - - Description - - apt-key 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. - - - Use of apt-key is deprecated, except for the use of - apt-key del in maintainer scripts to remove existing - keys from the main keyring. - If such usage of apt-key is desired the additional - installation of the GNU Privacy Guard suite (packaged in - gnupg) is required. - - - apt-key(8) will last be available in Debian 12 and Ubuntu 24.04. - - - -Supported keyring files -apt-key supports only the binary OpenPGP format (also known as "GPG key - public ring") in files with the "gpg" 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 gpg --export. - -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 "asc" extension instead which can be - created with gpg --armor --export. - - - -Commands - - (deprecated) - - - 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 - - from standard input. - - - It is critical that keys added manually via apt-key are - verified to belong to the owner of the repositories they claim to be for - otherwise the &apt-secure; infrastructure is completely undermined. - - - Note: Instead of using this command a keyring - should be placed directly in the /etc/apt/trusted.gpg.d/ - directory with a descriptive name and either "gpg" or - "asc" as file extension. - - - - - (mostly deprecated) - - - - Remove a key from the list of trusted keys. - - - - - - - (deprecated) - - - - Output the key &synopsis-param-keyid; to standard output. - - - - - - - (deprecated) - - - - Output all trusted keys to standard output. - - - - - - - , (deprecated) - - - - List trusted keys with fingerprints. - - - - - - - (deprecated) - - - Pass advanced options to gpg. With adv --recv-key you - can e.g. download key from keyservers directly into the trusted set of - keys. Note that there are no checks performed, so it is - easy to completely undermine the &apt-secure; infrastructure if used without - care. - - - - - - (deprecated) - - - 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 archive-keyring package of your - distribution, e.g. the &keyring-package; package in &keyring-distro;. - - - 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 - /etc/apt/trusted.gpg.d/ directory directly as this - avoids a dependency on gnupg and it is easier to manage - keys by simply adding and removing files for maintainers and users alike. - - - - - (deprecated) - - - - Perform an update working similarly to the update 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 - update instead, but Ubuntu's APT does. - - - - - - - - - Options -Note that options need to be defined before the commands described in the previous section. - - (deprecated) - 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 trusted.gpg file as well as on all parts in the - trusted.gpg.d directory, though trusted.gpg - is the primary keyring which means that e.g. new keys are added to this one. - - - - - - Deprecation - - Except for using apt-key del in maintainer scripts, the use of apt-key is deprecated. This section shows how to replace existing use of apt-key. - -If your existing use of apt-key add looks like this: -wget -qO- https://myrepo.example/myrepo.asc | sudo apt-key add - -Then you can directly replace this with (though note the recommendation below): -wget -qO- https://myrepo.example/myrepo.asc | sudo tee /etc/apt/trusted.gpg.d/myrepo.asc -Make sure to use the "asc" extension for ASCII armored -keys and the "gpg" extension for the binary OpenPGP -format (also known as "GPG key public ring"). The binary OpenPGP format works -for all apt versions, while the ASCII armored format works for apt version >= -1.4. -Recommended: Instead of placing keys into the /etc/apt/trusted.gpg.d -directory, you can place them anywhere on your filesystem by using the -Signed-By option in your sources.list and -pointing to the filename of the key. See &sources-list; for details. -Since APT 2.4, /etc/apt/keyrings is provided as the recommended -location for keys not managed by packages. -When using a deb822-style sources.list, and with apt version >= 2.4, the -Signed-By option can also be used to include the full ASCII -armored keyring directly in the sources.list without an -additional file. - - - - - - Files - - - &file-trustedgpg; - - - - - -See Also - -&apt-get;, &apt-secure; - - - - &manbugs; - &manauthor; - - - diff --git a/doc/apt-secure.8.xml b/doc/apt-secure.8.xml index 7e40a2b1c..0549011e4 100644 --- a/doc/apt-secure.8.xml +++ b/doc/apt-secure.8.xml @@ -60,6 +60,40 @@ and &synaptic; support this authentication feature, so this manpage uses APT to refer to them all for simplicity only. + + +User Configuration + + Keys should usually be included inside their corresponding .sources + by embedding the ASCII-armored key in the Signed-By option. + To do so, replace the empty line with a dot, and then indent all lines by two spaces. + See &sources-list; for more information. + + + + Alternatively, keys may be placed in /etc/apt/keyrings for local keys, + or /usr/share/keyrings for keys managed by packages, and then referenced + by Signed-By: /etc/apt/keyrings/example-archive-keyring.asc option in a .sources + file or using deb [signed-by=/etc/apt/keyrings/example-archive-keyring.asc] ... in the legacy + .list format. This may be useful for APT versions prior to 2.4, which do not + support embedded keys. ASCII-armored keys must use an extension of .asc, and + unarmored keys an extension of .gpg. + + + + To generate keys suitable for use in APT using GnuPG, you will need to use the + gpg --export-options export-minimal [--armor] --export command. + Earlier solutions involving --keyring file --import no longer work + with recent GnuPG versions as they use a new internal format ("GPG keybox database"). + + + + Note that a default installation already contains all keys to securely + acquire packages from the default repositories, so managing keys + is only needed if third-party repositories are added. + The extrepo package can be used to manage several + external repositories with ease. + Unsigned Repositories @@ -180,26 +214,6 @@ -User Configuration - - apt-key is the program that manages the list of keys used - by APT to trust repositories. It can be used to add or remove keys as well - as list the trusted keys. Limiting which key(s) are able to sign which archive - is possible via the in &sources-list;. - - Note that a default installation already contains all keys to securely - acquire packages from the default repositories, so fiddling with - apt-key is only needed if third-party repositories are - added. - - In order to add a new key you need to first download it - (you should make sure you are using a trusted communication channel - when retrieving it), add it with apt-key and - then run apt-get update so that apt can download - and verify the InRelease or Release.gpg - files from the archives you have configured. - - Repository Configuration @@ -243,7 +257,7 @@ See Also -&apt-conf;, &apt-get;, &sources-list;, &apt-key;, &apt-ftparchive;, +&apt-conf;, &apt-get;, &sources-list;, &apt-ftparchive;, &debsign;, &debsig-verify;, &gpg; diff --git a/doc/po4a.conf b/doc/po4a.conf index 0798eac68..3cf4d5ea8 100644 --- a/doc/po4a.conf +++ b/doc/po4a.conf @@ -15,7 +15,6 @@ [type: manpage] apt.8.xml $lang:$lang/apt.$lang.8.xml add_$lang:xml.add [type: manpage] apt-get.8.xml $lang:$lang/apt-get.$lang.8.xml add_$lang:xml.add [type: manpage] apt-cache.8.xml $lang:$lang/apt-cache.$lang.8.xml add_$lang:xml.add -[type: manpage] apt-key.8.xml $lang:$lang/apt-key.$lang.8.xml add_$lang:xml.add [type: manpage] apt-mark.8.xml $lang:$lang/apt-mark.$lang.8.xml add_$lang:xml.add [type: manpage] apt-secure.8.xml $lang:$lang/apt-secure.$lang.8.xml add_$lang:xml.add [type: manpage] apt-cdrom.8.xml $lang:$lang/apt-cdrom.$lang.8.xml add_$lang:xml.add diff --git a/doc/sources.list.5.xml b/doc/sources.list.5.xml index 4fa7a245b..a463d4333 100644 --- a/doc/sources.list.5.xml +++ b/doc/sources.list.5.xml @@ -304,8 +304,8 @@ deb-src [ option1=value1 option2=value2 ] uri suite [component1] [component2] [. and /etc/apt/keyrings for keyrings managed by the system operator. If no keyring files are specified the default is the trusted.gpg keyring and - all keyrings in the trusted.gpg.d/ directory - (see apt-key fingerprint). If no fingerprint is + all keyrings in the trusted.gpg.d/ directory. + If no fingerprint is specified all keys in the keyrings are selected. A fingerprint will accept also all signatures by a subkey of this key, if this isn't desired an exclamation mark (!) can be appended to -- cgit v1.2.3-70-g09d2