
Estoy intentando generar un par de claves para permitir que un servidor jenkins envíe ssh a otro (a través del complemento ssh-steps si es relevante). La clave pública irá a las claves autorizadas en el host de destino. Tengo entendido que debería ser simple, algo como:
sudo su - [jenkins user]
ssh-keygen -t rsa -b 4096 -C jenkinsuser@jenkinshost
Luego guarde la clave /home/jenkinsuser/.ssh/id_rsa
y obtenga la clave pública para agregarla a las claves autorizadas en el host.
Lo que veo es que sudo su - jenkinsuser
no funciona y /etc/passwd
revela que el shell para este usuario está configurado en /bin/false
, para deshabilitar el inicio de sesión según tengo entendido.
Con eso en mente, estoy buscando una mejor práctica para designar un lugar para la clave ssh, ya que el usuario tiene el inicio de sesión deshabilitado y, por lo tanto, no tiene un directorio de inicio.
Respuesta1
Jenkins tiene incorporadotienda de credencialesque es el lugar más apropiado para colocar las claves SSH utilizadas por los trabajos de Jenkins. El almacén de credenciales está diseñado para almacenar varios tipos de credenciales utilizadas por los trabajos de Jenkins, como claves SSH, nombres de usuario/contraseñas y claves API. El almacén de credenciales permite la delegación de acceso y garantiza que las credenciales confidenciales no se escriban en la salida del trabajo.
Respuesta2
No es necesario ser root para ejecutar el script de generación de claves.
Normalmente guardo todas mis llaves en /etc/ssh
. Esto está fuera del directorio de inicio y creo que /etc
es el directorio más preciso para eso.