Não é possível scp em Jenkins

1

Sou um novo usuário do Jenkins. Eu estou tentando executar um script de shell como parte da etapa de compilação no Jenkins. Este script tem um comando scp que transfere um arquivo .tar para um servidor remoto.

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

"Host key verification failed.

lost connection."

Até o comando scp, o script é executado com sucesso e, em seguida, pula a etapa scp.

Eu não posso nem mesmo SSH ou SCP através do Jenkins para o servidor remoto.

Por favor, informe o que pode ser feito aqui? Quais são os plugins necessários para serem instalados para o ssh e o scp?

    
por Sateesh Kumar Sahoo 19.05.2016 / 15:32

3 respostas

2

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

  1. Ativar login do ssh para o usuário do jenkins
  2. faça login como jenkins
  3. ssh para o servidor remoto
  4. responda a pergunta "se a identidade do servidor for adicionada ..." com sim.

Então você está feito. Depois, o script poderá fazer o scp com o pubkey dos usuários.

    
por 19.05.2016 / 16:52
1

Em suma, você precisa adicionar a chave ssh do usuário do Jenkins ao servidor em que você está tentando se conectar, como aquele usuário.

Detalhes:

Faça login no servidor jenkins e, em seguida:

sudo passwd jenkins

digite a senha que você quer dar ao usuário jenkins duas vezes, então:

su jenkins
cd
ssh-keygen

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

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

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

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

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 o passo acima, então:

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

sair / sair do servidor Então, de volta ao servidor Jenkins:

ssh user@newserver

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

Agora execute o trabalho scp novamente em Jenkins

    
por 20.07.2018 / 10:04
0

Eu tenho uma correção para o problema. 1. Eu criei um novo par de chaves shh sob o usuário Jenkins. 2. Adicionada a chave .pub ao servidor remoto. Ao fazer o ssh a partir do 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

    
por 20.05.2016 / 16:29

Tags