Tengo una clave ssh en ~/.ssh/id_rsa.pub cuando inicio sesión como usuario de jenkins.
Importé esto a Bitbucket correctamente y aceptó la clave.
Cuando intento hacer un clon de git (a la URL correcta), todavía obtengo...
Building in workspace /var/lib/jenkins/jobs/Google adwords/workspace
Checkout:workspace / /var/lib/jenkins/jobs/Google adwords/workspace - hudson.remoting.LocalChannel@2c473996
Using strategy: Default
Cloning the remote Git repository
Cloning repository origin
ERROR: Error cloning remote repo 'origin' : Could not clone [email protected]:DAVID99WORLD/assessme.git
hudson.plugins.git.GitException: Could not clone [email protected]:DAVID99WORLD/assessme.git
at hudson.plugins.git.GitAPI.clone(GitAPI.java:268)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1122)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1064)
at hudson.FilePath.act(FilePath.java:842)
at hudson.FilePath.act(FilePath.java:824)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1064)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1256)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:589)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:494)
at hudson.model.Run.execute(Run.java:1502)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:477)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:236)
Caused by: hudson.plugins.git.GitException: Command "git clone --progress -o origin [email protected]:DAVID99WORLD/assessme.git /var/lib/jenkins/jobs/Google adwords/workspace" returned status code 128:
stdout: Cloning into '/var/lib/jenkins/jobs/Google adwords/workspace'...
stderr: Host key verification failed.
fatal: The remote end hung up unexpectedly
¿Alguien sabe alguna razón por la cual esto podría ocurrir? Según la documentación que he leído, ~/.ssh es el directorio correcto como usuario de jenkins para que exista este archivo.
EDITAR: Mi usuario de jenkins no tiene un archivo conocido_hosts en ~/.ssh pero los de mi nivel raíz sí, ¿debería tenerlo? Puedo hacer una clonación con mi usuario jenkins sin problemas y no menciona al host en absoluto como usuario jenkins.
Respuesta1
Deberías tener la clave privada allí, no sólo la clave pública. Si su clave pública es id_rsa.pub
, probablemente su clave privada sea nombrada id_rsa
.
¿Supongo que copió esta clave pública de algún otro sistema (quizás su escritorio local)?
También puede copiar la clave privada correspondiente al ~/.ssh
directorio de jenkins o puede generar un nuevo par de claves para su usuario de jenkins e importar esa clave pública en bitbucket.
Para generar un nuevo par de claves ssh:
cd ~/.ssh
ssh-keygen -t rsa
Esto generará el siguiente resultado:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/b/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/jenkins/.ssh/id_rsa.
Your public key has been saved in /home/jenkins/.ssh/id_rsa.pub.
Respuesta2
El problema real parecía ser que el servidor Bitbucket no estaba en mi lista de hosts conocidos. Tuve que iniciar sesión como usuario de jenkins y hacer una clonación de git nuevamente, esto agregó la URL de bitbucket nuevamente a los hosts conocidos.