No se puede realizar scp en Jenkins

No se puede realizar scp en Jenkins

Soy un nuevo usuario de Jenkins. Estoy intentando ejecutar un script de shell como parte del paso de compilación en Jenkins. Este script tiene un scpcomando que transfiere un .tararchivo a un servidor remoto.

Cuando ejecuto este script, funciona bien y proporciona el resultado deseado, pero cuando se ejecuta a través de Jenkins aparece un error:

Host key verification failed.
lost connection

Hasta el scpcomando, el script se ejecuta correctamente y luego omite el scppaso.

Ni siquiera puedo acceder mediante SSH o SCP a través de Jenkins al servidor remoto.

Por favor, indique qué se puede hacer aquí. ¿Cuáles son los complementos necesarios para instalar sshy scp?

Respuesta1

La clave de hosts debe agregarse al archivo "known_hosts" del cliente, en su caso el usuario, bajo cuya cuenta se ejecuta el servidor jenkins. Entonces lo que debes hacer es:

  1. Habilite el inicio de sesión ssh para el usuario jenkins
  2. inicia sesión como jenkins
  3. ssh al servidor remoto
  4. Responda la pregunta "¿Debería agregarse la identidad del servidor?" con Sí.

Entonces ya terminaste. Posteriormente, el script podrá realizar scp con la clave pública del usuario.

Respuesta2

En resumen, debe agregar la clave ssh del usuario de Jenkins al servidor donde intenta iniciar sesión, como ese usuario.

Detalles:

Inicie sesión en el servidor jenkins, luego:

sudo passwd jenkins

ingrese la contraseña que desea darle al usuario de jenkins dos veces, luego:

su jenkins
cd
ssh-keygen

Presione enter para ver todas las opciones. Luego copie las nuevas claves ssh al servidor al que desea copiar:

scp .ssh/id_rsa.pub user@newserver:/home/user/jenkins_key

Si se le solicita, presione 'sí' para continuar.

Luego inicie sesión en ese servidor como ese usuario, luego:

ssh user@server

e ingrese la contraseña, luego

cd .ssh
ls -lah

si no hay 'claves_autorizadas' entonces:

cd .ssh
touch authorized_keys

Si el archivo 'authorized_keys' está allí, ignore el paso anterior, entonces:

cd
cat jenkins_key >> .ssh/authorized_keys
rm -rf ./jenkins_key

salir/cerrar sesión en el servidor y luego volver al servidor jenkins:

ssh user@newserver

Debe iniciar sesión directamente sin que se le solicite ni ingresar su contraseña.

Ahora ejecute el trabajo scp nuevamente en Jenkins.

Respuesta3

Obtuve una solución al problema. 1. Creé un nuevo par de claves shh con el usuario jenkins. 2. Se agregó la clave .pub al servidor remoto. Mientras se realiza ssh desde el servidor jenkins, se utiliza la clave privada recién generada. Ahora tanto ssh como scp funcionan como parte del paso de compilación. Gracias

Respuesta4

Complemento de agente SSH

Este complemento le permite proporcionar credenciales SSH a compilaciones a través de un agente ssh en Jenkins. https://plugins.jenkins.io/ssh-agent/

Si vuelve a ver este error, ejecute este comando una vez desde el trabajo de Jenkins:

ssh -o StrictHostKeyChecking=no user@host hostname

Después de eso, simplemente puedes ejecutar ssh desde el trabajo de Jenkins:

ssh user@host hostname

información relacionada