Saltar al contenido

cómo configurar las claves ssh para que jenkins las publique a través de ssh

Solución:

Deberá crear una clave pública / privada como usuario de Jenkins en su servidor de Jenkins, luego copiar la clave pública al usuario con el que desea realizar la implementación en su servidor de destino.

Paso 1, genere la clave pública y privada en el servidor de compilación como usuario jenkins

build1:~ jenkins$ whoami
jenkins
build1:~ jenkins$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/var/lib/jenkins/.ssh/id_rsa): 
Created directory '/var/lib/jenkins/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /var/lib/jenkins/.ssh/id_rsa.
Your public key has been saved in /var/lib/jenkins/.ssh/id_rsa.pub.
The key fingerprint is:
[...] 
The key's randomart image is:
[...]
build1:~ jenkins$ ls -l .ssh
total 2
-rw-------  1 jenkins  jenkins  1679 Feb 28 11:55 id_rsa
-rw-r--r--  1 jenkins  jenkins   411 Feb 28 11:55 id_rsa.pub 
build1:~ jenkins$ cat .ssh/id_rsa.pub
ssh-rsa AAAlskdjfalskdfjaslkdjf... [email protected]

Paso 2: pegue el contenido del archivo pub en el servidor de destino.

target:~ bob$ cd .ssh
target:~ bob$ vi authorized_keys (paste in the stuff which was output above.)

Asegúrese de que su directorio .ssh tenga permisos 700 y de que su archivo autorizado_keys tenga permisos 644

Paso 3, configure Jenkins

  1. En el panel de control web de jenkins, vaya a “Administrar Jenkins” -> “Configurar sistema” -> “Publicar en SSH”
  2. Ingrese la ruta del archivo, por ejemplo, “var / lib / jenkins / .ssh / id_rsa”, o pegue el mismo contenido que en el servidor de destino.
  3. Ingrese su contraseña, servidor y detalles de usuario, ¡y listo!

Para ventanas:

  1. Instale los complementos necesarios para el repositorio (por ejemplo: GitHub instale los complementos de autenticación de GitHub y GitHub) en Jenkins.
  2. Puede generar una clave con el generador de claves Putty, o ejecutando el siguiente comando en git bash: $ ssh-keygen -t rsa -b 4096 -C [email protected]
  3. La clave privada debe ser OpenSSH. Puede convertir su clave privada a OpenSSH en el generador de claves de masilla
  4. Las claves SSH vienen en pares, públicas y privadas. Las claves públicas se insertan en el repositorio para ser clonadas. Las claves privadas se guardan como credenciales en Jenkins
  5. Debe copiar la URL SSH, no HTTPS para trabajar con claves ssh.

No es necesario crear las claves SSH en el servidor de Jenkins, ni tampoco es necesario que almacene las claves SSH en el sistema de archivos del servidor de Jenkins. Esta información es crucial en entornos donde las instancias de servidores de Jenkins se pueden crear y destruir con frecuencia.

Generando el par de claves SSH

En cualquier máquina (Windows, Linux, MacOS … no importa) genere un par de claves SSH. Utilice este artículo como guía:

  • GitHub: Generar una nueva clave SSH y agregarla al ssh-agent (puede omitir la sección “Agregar su clave SSH al ssh-agent”)

En el servidor de destino

En el servidor de destino, deberá colocar el contenido del público llave (id_rsa.pub según el artículo anterior) en el .ssh/authorized_keys archivo en el directorio de inicio del usuario que Jenkins utilizará para la implementación.

En Jenkins

Uso del complemento “Publicar en SSH”

Ref: https://plugins.jenkins.io/publish-over-ssh/

Visita: Jenkins > Manage Jenkins > Configure System > Publish over SSH

  • Si la clave privada está encriptada, deberá ingresar la frase de contraseña de la clave en el campo “Frase de contraseña”; de lo contrario, déjela en paz.
  • Deje el campo “Ruta a la clave” vacío, ya que se ignorará de todos modos cuando utilice una clave pegada (siguiente paso)
  • Copie y pegue el contenido del privado llave (id_rsa según el artículo anterior) en el campo “Clave”
  • En “Servidores SSH”, “Agregar” una nueva configuración de servidor para su servidor de destino.

Uso de credenciales globales almacenadas

Visita: Jenkins > Credentials > System > Global credentials (unrestricted) > Add Credentials

  • Amable: “Nombre de usuario SSH con clave privada”
  • Alcance: “Global”
  • IDENTIFICACIÓN: [CREAT A UNIQUE ID FOR THIS KEY]
  • Descripción: [optionally, enter a decription]
  • Nombre de usuario: [USERNAME JENKINS WILL USE TO CONNECT TO REMOTE SERVER]
  • Llave privada: [select “Enter directly”]
  • Llave: [paste the contents of the private key (id_rsa per the above article)]
  • Frase de contraseña: [enter the passphrase for the key, or leave it blank if the key is not encrypted]
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *