首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Jenkins主机密钥验证失败

Jenkins主机密钥验证失败
EN

Stack Overflow用户
提问于 2013-03-02 19:59:42
回答 16查看 240.1K关注 0票数 178

我有一个关于jenkins的问题,设置为"git",显示以下错误:

代码语言:javascript
复制
Failed to connect to repository : Command "git ls-remote -h https://person@bitbucket.org/person/projectmarket.git HEAD" returned status code 128:
stdout:
stderr: fatal: Authentication failed

我用ssh进行了测试。

代码语言:javascript
复制
git@bitbucket.org:person/projectmarket.git

这是错误:

代码语言:javascript
复制
Failed to connect to repository : Command "git ls-remote -h git@bitbucket.org:person/projectmarket.git HEAD" returned status code 128:
stdout:
stderr: Host key verification failed.
fatal: The remote end hung up unexpectedly

我也用"SSH key“完成了这些步骤。

在Jenkins下登录

代码语言:javascript
复制
sudo su jenkins

将github密钥复制到Jenkins .ssh文件夹

代码语言:javascript
复制
cp ~/.ssh/id_rsa_github* /var/lib/jenkins/.ssh/

重命名密钥

代码语言:javascript
复制
mv id_rsa_github id_rsa
mv id_rsa_github.pub id_rsa.pub

但仍然不能在jenkins中使用git存储库。

感谢你的帮助!

EN

回答 16

Stack Overflow用户

回答已采纳

发布于 2013-03-04 14:54:23

切换到jenkins用户并手动运行命令:

代码语言:javascript
复制
git ls-remote -h git@bitbucket.org:person/projectmarket.git HEAD

第一次通过SSH连接到新主机时,您将收到标准的SSH警告:

代码语言:javascript
复制
The authenticity of host 'bitbucket.org (207.223.240.181)' can't be established.
RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40.
Are you sure you want to continue connecting (yes/no)?

键入yes,然后按Enter键。现在,bitbucket.org的主机密钥将被添加到~/.ssh/known_hosts文件中,在Jenkins中不会再出现此错误。

票数 194
EN

Stack Overflow用户

发布于 2014-11-17 21:12:54

Jenkins是一个服务帐户,它在设计上没有shell。人们普遍认为,服务帐户。不能以交互方式登录。

要解决"Jenkins Host key校验失败“的问题,请执行以下步骤。我对jenkins使用过mercurial。

1)在终端上执行以下命令

代码语言:javascript
复制
             $ sudo su -s /bin/bash jenkins

提供密码

2)使用以下命令生成公钥私钥:

代码语言:javascript
复制
              ssh-keygen

您可以将输出显示为::

代码语言:javascript
复制
Generating public/private rsa key pair. 
Enter file in which to save the key (/var/lib/jenkins/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 

3)按Enter -->不提供任何密码-->按enter

代码语言:javascript
复制
             Key has been generated

4)转到--> cat /var/lib/jenkins/.ssh/id_rsa.pub

5)从id_rsa.pub复制密钥

6)退出bash

7) ssh@yourrepository

8) vi .ssh/authorized_keys

9)粘贴密钥

10)退出

11)手动登录mercurial服务器

注意:请手动登录,否则jenkins将再次给出错误“主机验证失败”

12)一旦手动完成,现在转到Jenkins并给出构建

尽情享受!

祝好运

票数 54
EN

Stack Overflow用户

发布于 2015-12-02 22:17:20

或者,您可以使用:

ssh -oStrictHostKeyChecking=no host

这将是不安全的(中间人攻击),但最简单的解决方案。

更好的方法是在主机和ip地址之间生成正确的映射,这样ssh就不会报错:

代码语言:javascript
复制
#!/bin/bash

for domain in "github.com" "bitbucket.org"; do
    sed -i "/$domain/d" ~/.ssh/known_hosts
    line=$(ssh-keyscan $domain,`nslookup $domain | awk '/^Address: / { print $2 ; exit }'`)
    echo $line >> ~/.ssh/known_hosts
done

节选自gist

票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15174194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档