我有 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
我用_1534364测试了:
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密钥”完成了这些步骤 .
在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 存储库 .
谢谢你的帮助!
11 回答
切换到
jenkins
用户并手动运行该命令:首次通过SSH连接到新主机时,您将收到标准的SSH警告:
输入
yes
并按Enter键 .bitbucket.org
的主机密钥现在将添加到~/.ssh/known_hosts
文件中,您不会再在Jenkins中收到此错误 .Jenkins是一个服务帐户,它没有设计shell . 通常接受服务帐户 . 不应该以交互方式登录 .
要解决“Jenkins主机密钥验证失败”,请执行以下步骤 . 我和詹金斯一起使用了mercurial .
1)在终端上执行以下命令
提供密码
2)使用以下命令生成公钥:
你可以看到输出::
3)按Enter - >不提供任何密码 - >按enter键
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并进行构建
请享用!!!
祝好运
或者您可以使用:
ssh -oStrictHostKeyChecking=no host
这将是不安全的(中间人攻击)但最简单的解决方案 .
更好的方法是在主机和IP地址之间生成正确的映射,所以
ssh
不会抱怨:摘自gist .
有同样的问题,我修复它:
id_rsa *的重置权限仅适用于当前用户没有其他组
并清除〜/ .ssh / know_hosts
现在连接詹金斯
试试jenkins命令
如果没有问题出现,现在jenkins将能够连接回购(至少对我来说^^)
使用https://bitbucket.org/YYYY/XX.git
你shoud删除用户名@
确保我们没有编辑任何默认的sshd_config属性来跳过错误
主机验证失败 - 在
known_hosts
文件中肯定缺少主机名条目登录进程失败的服务器并执行以下操作:
Sudo给运行该进程的用户
ssh-copy-id destinationuser@destinationhostname
它会第一次这样提示,说是,它也会第一次询问密码:
密码提示?给密码
ssh destinationuser@destinationhostname
. 它应该没有密码登录 .Note: 不要更改用户的.ssh目录中文件的默认权限,最终会遇到不同的问题
最好的方法是在Jenkins文件中或任何你想要的地方使用“https”URL格式的“git url” .
git url: 'https://github.com/jglick/simple-maven-project-with-tests.git'
尝试
ssh-keygen -R主机名
-R hostname从known_hosts文件中删除属于hostname的所有密钥 . 此选项对于删除散列主机很有用
SSH
如果您使用SSH尝试它,那么 Host key Verification 错误可能由于几个原因而出现 . 请按照以下步骤克服所有原因 .
将Environment变量设置为 HOME ,并将地址作为 .ssh 文件夹的根目录 . 例如: - 如果您的.ssh保存在 Name 文件夹中 . C:/用户/名称 .
现在确保还在存储库链接中提供了公共SSH密钥 . 它是github或bitbucket或任何其他 .
打开git bash . 并尝试从存储库中克隆项目 . 这将有助于在known_host文件中添加存储库URL,该文件正在.ssh文件夹中自动创建 .
现在打开jenkins并创建一份新工作 . 然后单击configure .
在Git下的源代码管理中提供克隆URL . URL应该以git@github.com / .........或ssh:// proje ........开头 .
在Credential下,您需要添加要克隆项目的存储库表单的用户名和密码 . 选择该凭证 .
现在应用并保存配置 .
宾果!开始建设项目 . 我希望你现在不会得到任何主机密钥验证错误!
从bitbucket和github复制主机密钥:
ssh root @ deployserver'echo“$(ssh-keyscan -t rsa,dsa bitbucket.org)”>> /root/.ssh/known_hosts'ssh root @ deployserver'echo“$(ssh-keyscan -t rsa,dsa github .com)“>> /root/.ssh/known_hosts'
登录为jenkins使用:"sudo su -s /bin/bash jenkins"
git克隆所需的repo,导致键错误
它会要求您通过显示是/否(输入是或否)来添加密钥
而已!
你现在可以重新开始jenkins的工作了 .
我希望你能解决这个问题 .