OpenShift Jenkins git clone失败:主机密钥验证失败

时间:2016-04-16 20:27:17

标签: git jenkins ssh openshift

我尝试在Red Hat OpenShift环境中在Jenkins中构建我的Node JS(最新版本)应用程序,但它在Jenkins日志中继续失败并显示此消息:

Host key verification failed.
fatal: Could not read from remote repository.

经过进一步调查后发现,Jenkins服务器无法从应用服务器克隆存储:

[JENKINS_HOST test]\> git clone ssh://GUID@APP_HOST/~/git/sof.git
    Cloning into 'sof'...
    The authenticity of host 'APP_HOST (172.16.6.220)' can't be established.
    RSA key fingerprint is cf:ee:77:cb:0e:fc:02:d7:72:7e:ae:80:c0:90:88:a7.
Are you sure you want to continue connecting (yes/no)? yes
    Failed to add the host to the list of known hosts  (/var/lib/openshift/GUID/.ssh/known_hosts).
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights and the repository exists.

我甚至无法进入Jenkins主机上的.ssh目录。

请注意,OpenShift应用程序管理应该处理应用程序和CI主机之​​间的所有私钥,但似乎无法正常工作。

任何想法?
我在网上搜索过,但特定于OpenShift的场景并不常见。

3 个答案:

答案 0 :(得分:1)

这可以通过自定义墨盒https://cartreflect-claytondev.rhcloud.com/reflect?github=smerrill/openshift-community-git-ssh完成 盒式磁带创建脚本并设置GIT_SSH环境变量以运行git-ssh而无需严格的主机密钥检查。

所以,

  1. 将带有Openshift网络控制台的墨盒安装到您的jenkins应用程序(Applications / jenkins /“或者,查看可添加的墨盒的完整列表”,将链接放入“安装自己的墨盒”字段)
  2. 通过ssh:ssh @ jenkins-.rhcloud.com
  3. 连接到jenkins应用程序
  4. cd $ {OPENSHIFT_DATA_DIR} / git-ssh /
  5. SSH-密钥生成
    4.1。设置密钥文件./id_rsa
    4.2。保留密码为空 这会在$ {OPENSHIFT_DATA_DIR} / git-ssh / directory
  6. 中创建文件id_rsa和id_rsa.pub
  7. 打印您的id_rsa.pub:cat id_rsa.pub
  8. 复制id_rsa.pub
  9. 的内容
  10. 在Openshift网络控制台中,转到“设置”,添加新公钥
  11. 填写密钥名称并将id_rsa.pub的内容粘贴到第二个字段中,按“创建”
  12. 重新启动jenkins应用程序
  13. 现在git clone必须正常

答案 1 :(得分:0)

如果您不需要提交将protocol更改为http,则不需要使用ssh密钥,因为如果您的服务器允许并支持此协议,则它应该是只读的。

如果必须使用ssh,则必须设置ssh密钥。没办法“跳过”它。

答案 2 :(得分:0)

如果有人到达这里,而他只是无法在openshift上克隆他的私人仓库。不适用于SSH和HTTP。我有一个简单的解决方案,效果很好。使用http克隆,并将令牌添加到回购链接中,例如

git clone https://<token>@github.com/owner/repo.git