gpg: cancelado por el usuario

Intentando crear keys GPG que se utilizarán para un repository apt alojado en mi cuadro Centos7. Creé un nuevo usuario "apt" y luego intenté crear las keys, pero al final, indica que necesito una frase de contraseña, pero luego cierro instantáneamente la cancelación del usuario. No, no lo fue!

Desde entonces he repetido con éxito estos mismos pasos de root y como mi nombre de usuario estándar, que sucede que está en el grupo de ruedas.

Dos preguntas:

  1. ¿Es una buena idea utilizar diferentes gpg keys para diferentes usos, como este repository apt, y las keys deberían crearse como root?
  2. ¿Por qué no puedo crear una key gpg para este usuario? ¿Debo crear primero otra key para este usuario?

Gracias

[apt@devserver ~]$ gpg --gen-key gpg (GnuPG) 2.0.22; Copyright (C) 2013 Free Software Foundation, Inc. This is free software: you are free to change and networkingistribute it. There is NO WARRANTY, to the extent permitted by law. Please select what kind of key you want: (1) RSA and RSA (default) (2) DSA and Elgamal (3) DSA (sign only) (4) RSA (sign only) Your selection? RSA keys may be between 1024 and 4096 bits long. What keysize do you want? (2048) Requested keysize is 2048 bits Please specify how long the key should be valid. 0 = key does not expire <n> = key expires in n days <n>w = key expires in n weeks <n>m = key expires in n months <n>y = key expires in n years Key is valid for? (0) 1y Key expires at Thu 12 Jul 2018 04:32:05 PM UTC Is this correct? (y/N) y GnuPG needs to construct a user ID to identify your key. Real name: somename Email address: example@gmail.com Comment: You selected this USER-ID: "somename <example@gmail.com>" Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O You need a Passphrase to protect your secret key. gpg: cancelled by user gpg: Key generation canceled. [apt@devserver ~]$ 

En cuanto al error "cancelado por el usuario": GnuPG intenta asegurarse de que está leyendo la frase de contraseña directamente desde el terminal, no (por ejemplo) transmitida desde stdin. Para hacerlo, intenta abrir el tty directamente. Desafortunadamente, los permissions de files se interponen en el path: el dispositivo tty es propiedad del usuario con el que inicia session. Entonces, solo ese usuario y root pueden abrirlo. GnuPG parece informar el error incorrectamente, diciendo que cancelaste (cuando en realidad recibió un permiso denegado).

En cuanto a si debe tener una key separada para el repository: sí. Hay un par de razones que vienen a la mente:

  • Un repository puede ser mantenido por más de una persona. Todos ellos necesitarán acceso a la key. Obviamente no quiere darles acceso a su key personal.
  • El software que procesa packages nuevos necesitará acceso a la key. Para muchos repositorys, eso significa que debe mantener la key disponible en una máquina conectada a Internet. Esto requiere un nivel de security inferior al que idealmente tendría en su key personal.
  • Si está procesando subidas automáticamente, puede que necesite almacenar la key sin frase de contraseña. Obviamente networkinguce la security.
  • En caso de comprometer su key personal, es bueno tener que revocarla. Lo mismo con el compromiso de la key del repository. Hace que revocar una key comprometida sea más barato.

Es bastante normal usar tu key personal para firmar la key del repository.

En cuanto a ejecutar la generación de keys como root: no es ideal (no ejecuta cosas como root sin una buena razón), pero probablemente no sea realmente un problema.