{"id":3209,"date":"2019-12-18T11:39:18","date_gmt":"2019-12-18T10:39:18","guid":{"rendered":"https:\/\/esferas.org\/msqlu\/?p=3209"},"modified":"2019-12-18T11:39:18","modified_gmt":"2019-12-18T10:39:18","slug":"clave-de-repositorio-debian-personal-caducada","status":"publish","type":"post","link":"https:\/\/esferas.org\/msqlu\/2019\/12\/18\/clave-de-repositorio-debian-personal-caducada\/","title":{"rendered":"Clave de repositorio Debian personal caducada &#8230;"},"content":{"rendered":"\n<p>&#8230; \u00bf y qu\u00e9 hacemos ahora ? \u00a1 Una clave caducada, nada menos !<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Pues s\u00ed, dos a\u00f1os ha durado porque en dos a\u00f1os establec\u00ed su caducidad y no me puedo quejar. Es m\u00e1s, me da la oportunidad de revisitar el tema y aclarar algunos conceptos.<\/p>\n\n\n\n<p>Desde el a\u00f1o 2017 estoy utilizando el programa <a href=\"https:\/\/esferas.org\/msqlu\/tag\/reprepro\/\">reprepro<\/a> para mantener dos repositorios de paquetes Debian: uno personal y otro para mi trabajo. En el primero la clave GPG que cre\u00e9 para firmar los paquetes ha caducado y desde hace unos d\u00edas no es posible actualizar autom\u00e1ticamente las distintas m\u00e1quinas donde la utilizo. <\/p>\n\n\n\n<p>Esta ma\u00f1ana me he puesto a ello y he ido anotando todos los pasos que he dado para volver a crear una clave de firma. <\/p>\n\n\n\n<p>El proceso consiste en crear una clave maestra empleando el programa gpg con las siguientes caracter\u00edsticas:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Tipo 1 (RSA y RSA) y de confianza absoluta<\/li><li>Tama\u00f1o 4096 bits<\/li><li>Sin fecha de expiraci\u00f3n <\/li><li>Con la direcci\u00f3n de correo del administrador del repositorio (root@astillas.net en mi caso) como identificador<\/li><li>Una contrase\u00f1a que considero robusta<\/li><\/ul>\n\n\n\n<p>Una vez hecho \u00e9sto la idea es crear una subclave para firmar los paquetes y extraer la clave privada de la clave maestra del anillo GPG local de manera que permanezca a salvo para poder revocarla o renovarla llegado el caso. <\/p>\n\n\n\n<p>Para la custodia creo una entrada en mi archivo Keepass y le a\u00f1ado como adjunto la clave maestra exportada adem\u00e1s de anotar la contrase\u00f1a y otros detalles<\/p>\n\n\n\n<p>Como paso final publicamos la clave p\u00fablica de la subclave a un servidor externo. He elegido <a href=\"https:\/\/keys.openpgp.org\/about\">keys.opengpg.org<\/a> para ello y, tras emplear la clave para firmar los paquetes del repositorio, efectuar\u00e9 una prueba de importaci\u00f3n desde el servidor en uno de los servidores secundarios. <\/p>\n\n\n\n<p>Lo anterior puede parecer algo lioso pero si se tiene claro qu\u00e9 se quiere conseguir la gu\u00eda de <a href=\"https:\/\/www.digitalocean.com\/community\/tutorials\/how-to-use-reprepro-for-a-secure-package-repository-on-ubuntu-14-04\">Digital Ocean al respecto<\/a> es tan f\u00e1cil como una receta de cocina. <\/p>\n\n\n\n<p>Y una vez que tenemos nuestra clave para firmar paquetes vamos a ver c\u00f3mo podemos usarla en nuestro repositorio personal. Es obvio que los clientes de dicho repositorio tendr\u00e1n que importar la nueva clave y es algo que me gustar\u00eda poder automatizar para el siguiente a\u00f1o. De momento pongo un aviso en mi calendario personal para primeros de diciembre de 2020. Lo mismo hasta llego a tiempo y todo. <\/p>\n\n\n\n<p>Y como he visto que hay algunos detalles importantes desde el punto de vista t\u00e9cnico, prefiero hacer una entrada nueva o condenar\u00e9 a \u00e9sta a permanecer para siempre como boceto. <\/p>\n\n\n\n<p>En seguida vuelvo &#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8230; \u00bf y qu\u00e9 hacemos ahora ? \u00a1 Una clave caducada, nada menos !<\/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":[6],"tags":[41,692,159,139,730],"class_list":["post-3209","post","type-post","status-publish","format-standard","hentry","category-debian","tag-debian","tag-digital-ocean","tag-gpg","tag-repositorios","tag-reprepro"],"_links":{"self":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/3209","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=3209"}],"version-history":[{"count":8,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/3209\/revisions"}],"predecessor-version":[{"id":3217,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/3209\/revisions\/3217"}],"wp:attachment":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/media?parent=3209"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/categories?post=3209"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/tags?post=3209"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}