我有一个关于jenkins的问题,设置为"git",显示以下错误:
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进行了测试。
git@bitbucket.org:person/projectmarket.git
这是错误:
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下登录
sudo su jenkins
将github密钥复制到Jenkins .ssh文件夹
cp ~/.ssh/id_rsa_github* /var/lib/jenkins/.ssh/
重命名密钥
mv id_rsa_github id_rsa
mv id_rsa_github.pub id_rsa.pub
但仍然不能在jenkins中使用git存储库。
感谢你的帮助!
发布于 2013-03-04 14:54:23
切换到jenkins
用户并手动运行命令:
git ls-remote -h git@bitbucket.org:person/projectmarket.git HEAD
第一次通过SSH连接到新主机时,您将收到标准的SSH警告:
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中不会再出现此错误。
发布于 2014-11-17 21:12:54
Jenkins是一个服务帐户,它在设计上没有shell。人们普遍认为,服务帐户。不能以交互方式登录。
要解决"Jenkins Host key校验失败“的问题,请执行以下步骤。我对jenkins使用过mercurial。
1)在终端上执行以下命令
$ sudo su -s /bin/bash jenkins
提供密码
2)使用以下命令生成公钥私钥:
ssh-keygen
您可以将输出显示为::
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
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并给出构建
尽情享受!
祝好运
发布于 2015-12-02 22:17:20
或者,您可以使用:
ssh -oStrictHostKeyChecking=no host
这将是不安全的(中间人攻击),但最简单的解决方案。
更好的方法是在主机和ip地址之间生成正确的映射,这样ssh
就不会报错:
#!/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。
https://stackoverflow.com/questions/15174194
复制相似问题