Não é possível fazer scp no Jenkins

Não é possível fazer scp no Jenkins

Sou um novo usuário do Jenkins. Estou tentando executar um script de shell como parte da etapa de construção no Jenkins. Este script possui um scpcomando que transfere um .tararquivo para um servidor remoto.

Quando executo este script, ele funciona bem e fornece a saída desejada, mas quando é executado através do Jenkins, recebo um erro:

Host key verification failed.
lost connection

Até o scpcomando, o script é executado com êxito e depois pula a scpetapa.

Não consigo nem SSH ou SCP através do Jenkins para o servidor remoto.

Por favor, informe o que pode ser feito aqui? Quais são os plug-ins necessários para instalação sshe scp?

Responder1

A chave hosts precisa ser adicionada ao arquivo "known_hosts" do cliente, no seu caso o usuário, sob cuja conta o servidor Jenkins é executado. Então o que você precisa fazer é:

  1. Habilite o login ssh para o usuário jenkins
  2. faça login como jenkins
  3. ssh para o servidor remoto
  4. responda à pergunta "a identidade dos servidores deve ser adicionada .." com sim ..

Então você terminou. Depois, o script poderá fazer scp com o pubkey do usuário.

Responder2

Resumindo, você precisa adicionar a chave ssh do usuário Jenkins ao servidor onde você está tentando fazer login, como esse usuário.

Detalhes:

Faça login no servidor jenkins e então:

sudo passwd jenkins

digite a senha que deseja fornecer ao usuário jenkins duas vezes e, em seguida:

su jenkins
cd
ssh-keygen

Pressione enter para todas as opções. Em seguida, copie as novas chaves ssh para o servidor para o qual deseja copiar:

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

Se você for solicitado, pressione 'sim' para continuar.

Em seguida, faça login nesse servidor como esse usuário e:

ssh user@server

e digite a senha, então

cd .ssh
ls -lah

se não houver 'authorized_keys' então:

cd .ssh
touch authorized_keys

Se o arquivo 'authorized_keys' estiver lá, ignore a etapa acima, então:

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

sair / sair do servidor e voltar ao servidor jenkins:

ssh user@newserver

Você deve fazer login diretamente, sem avisos ou inserir sua senha

Agora execute o trabalho scp novamente no Jenkins

Responder3

Consegui uma solução para o problema. 1. Criei um novo par de chaves shh no usuário jenkins. 2. Adicionada a chave .pub ao servidor remoto. Ao fazer o ssh no servidor Jenkins, a chave privada recém-gerada é usada. Agora tanto o ssh quanto o scp funcionam como parte da etapa de construção. Obrigado

Responder4

Plug-in do Agente SSH

Este plugin permite que você forneça credenciais SSH para compilações por meio de um agente ssh no Jenkins. https://plugins.jenkins.io/ssh-agent/

Se você vir esse erro novamente, execute este comando uma vez no trabalho do Jenkins:

ssh -o StrictHostKeyChecking=no user@host hostname

Depois disso, você pode simplesmente executar o ssh no trabalho do Jenkins:

ssh user@host hostname

informação relacionada