{"id":3221,"date":"2019-12-19T10:14:35","date_gmt":"2019-12-19T09:14:35","guid":{"rendered":"https:\/\/esferas.org\/msqlu\/?p=3221"},"modified":"2019-12-19T10:21:33","modified_gmt":"2019-12-19T09:21:33","slug":"construyendo-la-nueva-clave-gpg-para-el-repositorio","status":"publish","type":"post","link":"https:\/\/esferas.org\/msqlu\/2019\/12\/19\/construyendo-la-nueva-clave-gpg-para-el-repositorio\/","title":{"rendered":"Construyendo la nueva clave GPG para el repositorio"},"content":{"rendered":"\n<p>Porque <a href=\"https:\/\/esferas.org\/msqlu\/2019\/12\/18\/clave-de-repositorio-debian-personal-caducada\/\">ayer dije<\/a> que volv\u00eda en un rato pero luego se me va el vino en catas. <\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Pues ya tengo clave nueva. Y funcionando en el repositorio. No s\u00e9 qu\u00e9 m\u00e1s pedirle a la vida. Ah, s\u00ed, poder usarla. <\/p>\n\n\n\n<p>El <a href=\"https:\/\/www.digitalocean.com\/community\/tutorials\/how-to-use-reprepro-for-a-secure-package-repository-on-ubuntu-14-04\">tutorial en Digital Ocean<\/a> que ya mencion\u00e9 ayer es de lo m\u00e1s claro as\u00ed que voy a detallar aqu\u00ed los pasos que he seguido para futuras referencias. <\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Crear la clave GPG maestra con las caracter\u00edsticas indicadas de tipo (RSA), tama\u00f1o (4096 bits) e identidad (root@astillas.net)<\/li><li>Editar para a\u00f1adir una subclave de tipo RSA tambi\u00e9n pero para firmar.<\/li><li>Exportar la clave maestra (parte p\u00fablica y parte privada) a un archivo.<\/li><li>Poner a salvo el archivo anterior (lo a\u00f1ado a mi base de datos <a href=\"https:\/\/esferas.org\/msqlu\/2016\/10\/26\/guardando-claves-de-cifrado-en-keepassx\/\">Keepass<\/a>) para borrarlo posteriormente.<\/li><li>Exportar la parte p\u00fablica de la clave maestra y la privada de la subclave en un par de archivos (public.key y signing.key)<\/li><li>Borramos la parte privada de la clave maestra.<\/li><li>Importamos lo que hemos extra\u00eddo en el paso 5<\/li><li>Borramos los archivos public.key y signing.key<\/li><li>Enviamos la clave a uno o varios servidores<\/li><\/ol>\n\n\n\n<p>La secuencia de \u00f3rdenes la pongo a continuaci\u00f3n para que pueda verla m\u00e1s clara pero tal vez, dentro de un tiempo, los par\u00e1metros de llamada a <em>gpg<\/em> hayan cambiado. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ gpg --full-generate-key\n$ gpg --keyid-format LONG -k  root@astillas.net\npub   rsa4096\/0x774B65041866CEA4 2019-12-19 [SC]\n      5381049786976143DF6050FF774B65041866CEA4\nuid                [  absoluta ] Repositorio Debian de astillas.net &lt;root@astillas.net>\nsub   rsa4096\/0x68BB259847FEB1D3 2019-12-19 [E]\n$ gpg --edit-key root@astillas.net\ngpg> addkey \n...\n$ gpg --keyid-format LONG -k  root@astillas.net\npub   rsa4096\/0x774B65041866CEA4 2019-12-19 [SC]\n      5381049786976143DF6050FF774B65041866CEA4\nuid                [  absoluta ] Repositorio Debian de astillas.net &lt;root@astillas.net>\nsub   rsa4096\/0x68BB259847FEB1D3 2019-12-19 [E]\nsub   rsa4096\/0xC8F0EB471A2174B7 2019-12-19 [S] [caduca: 2020-12-18]\n$ gpg --export 774B65041866CEA4 > public.key \n$ gpg --export-secret-subkeys 0xC8F0EB471A2174B7 > signing.key\n$ gpg --delete-secret-keys 774B65041866CEA4\n$ gpg --import public.key signing.key \n$ rm public.key signing.key \n$ gpg --keyserver keys.openpgp.org --send-key 0x774B65041866CEA4<\/code><\/pre>\n\n\n\n<p>Respecto a enviar la clave he empleado el servidor <a href=\"https:\/\/keys.openpgp.org\/about\">keys.openpgp.org<\/a> porque me ha llamado la atenci\u00f3n por lo directo y sencillo. Una vez enviada una clave por cualquiera de los m\u00e9todos de que disponen te env\u00edan un correo a la direcci\u00f3n que figura en ella para que valides la operaci\u00f3n. Todo es r\u00e1pido y muy simple. <\/p>\n\n\n\n<p>Pero volviendo al tema, para hacer que reprepro emplee esta clave para firmar no hay m\u00e1s que cambiar la configuraci\u00f3n en el archivo <em>conf\/distributions<\/em> e indicarle el ID de subclave directamente (0xC8F0EB471A2174B7 por ejemplo) o la direcci\u00f3n de correo (root@astillas.net) en el par\u00e1metro <em>SignWith: root@astillas.net<\/em>.<\/p>\n\n\n\n<p>Y como se supone que los paquetes Debian est\u00e1n firmados individualmente, a reprepro le basta con firmar el manifiesto contenido en <em>Release<\/em> y enviarlo al repositorio indicado en las fuentes de APT.<\/p>\n\n\n\n<p>Y ya est\u00e1. Al menos esta parte. Ahora tengo que repasar la idea de tener el repositorio de paquetes en git porque hay algo que no termina de funcionar correctamente. La idea es buena, conste, pero no estoy seguro de que el contenido web deba ser creado en cada copia del repositorio. <\/p>\n\n\n\n<p>Tambi\u00e9n volver\u00e9 en breve &#8230;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Referencias<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/superuser.com\/questions\/619145\/how-to-make-gnupg-display-full-8-byte-64-bit-key-id\">How to make GnuPG display full 8-byte\/64-bit key ID?<\/a><\/li><li><a href=\"https:\/\/security.stackexchange.com\/questions\/31614\/how-to-change-subkey-usage-of-a-pgp-key\">How to change (sub)key usage of a PGP key?<\/a><\/li><\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Porque ayer dije que volv\u00eda en un rato pero luego se me va el vino en catas.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","webmentions_disabled_pings":false,"webmentions_disabled":false,"footnotes":""},"categories":[2],"tags":[18,41,73,159,923,730],"class_list":["post-3221","post","type-post","status-publish","format-standard","hentry","category-software","tag-administracion-de-sistemas","tag-debian","tag-git","tag-gpg","tag-keys-openpgp-org","tag-reprepro"],"_links":{"self":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/3221","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/comments?post=3221"}],"version-history":[{"count":7,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/3221\/revisions"}],"predecessor-version":[{"id":3228,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/3221\/revisions\/3228"}],"wp:attachment":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/media?parent=3221"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/categories?post=3221"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/tags?post=3221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}