Dokcer、jenkins拉取gitlab(No ECDSA host key is known **、Permission denied (publickey,gssapi-keyex,**)

一、配置

jenkins 与 gitlab 均使用docker-compose搭建,并且搭建于不同的虚拟机上。

jenkins(最新的2.445版本):192.168.3.104

gitlab :192.168.3.105

二、搭建jenkins与gitlab,搭建过程省略,可以参考别人的

K8S+Jenkins+Harbor+Docker+gitlab集群部署_gitlab+jenkins+k8s+docker-CSDN博客

三、问题解决

在Jenkins与gitlab持续集成这一步出现问题。

我的操作步骤如下:

  1. Jenkins容器内生成ssh密钥对
  2. 将公钥添加到gitlab
  3. gitlab新建一个测试的内部项目(因为要验证ssh密钥配对,所以选择内部项目)
  4. Jenkins添加全局凭证,用户名填写gitlab的登录账号,并填写私钥
  5. Jenkins下载插Git Parameter、Publish Over SSH
  6. 新建Jenkins流水线项目,源码管理选git并填入gitlab的测试项目的ssh链接,凭证选择刚刚增加的凭证

这时候报错了:

无法连接仓库:Command "git ls-remote -h -- git@192.168.3.105:root/test.git HEAD" returned status code 128:
stdout:
stderr: No ECDSA host key is known for 192.168.3.105 and you have requested strict checking.
Host key verification failed.
fatal: Could not read from remote repository.

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

百度了一下,添加信任ip名单后(因为这步仍有错误,先不给出添加ip名单的方式),报另一个错误:

无法连接仓库:Command "git ls-remote -h -- git@192.168.3.105:33/root/test.git HEAD" returned status code 128:
stdout:
stderr: Permission denied, please try again.
Permission denied, please try again.
git@192.168.3.105: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
fatal: Could not read from remote repository.

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

---------------------------------------------------------------------------------------------------------------------------------

网上找了一大批类似问题,没找到合适的答案,最后根据openai的答案手动尝试了几次,终于发现可以连接的方式:

从gitlab复制的项目的ssh连接是:git@192.168.3.105:root/test.git ,在前面加上 ssh:// ,中间加上端口号。

ssh://git@192.168.3.105:33/root/test.git

注意:这里的33端口是因为我在用docker-compose创建gitlab的时候定义了ssh端口

同样的,报第一个错误,于是先在jenkins 容器内执行一次,添加信任ip

git ls-remote -h -- ssh://git@192.168.3.105:33/root/test.git HEAD

再次在Jenkins填写地址 ssh://git@192.168.3.105:33/root/test.git ,这次成功添加并且拉取到了代码

最后问题虽然解决,但仍有疑问,似乎csdn上很多教程都没有出现我类似的问题,他们并不需要在gitlab的地址上添加ssh://,或许是我用错了插件或者版本???

  • 19
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 当你在使用Jenkins创建Git的pipeline时,如果遇到了"stderr: Host key verification failed."错误,这通常是由于SSH验证方式导致的。在填写Git Repo时,你使用了SSH验证方式,但是你的证书没有传到对方的授权登录主机列表中,所以无法成功登录远程主机。解决这个问题的方法是,使用Jenkins用户创建的秘钥来访问GitLab。之前你可能使用了root用户生成的秘钥,在命令行执行时,因为是root用户登录环境,所以可以正常进行Git clone操作。但是在Jenkins环境中执行Git操作时,由于没有找到Jenkins用户的公钥,导致无法进行免密访问。\[1\]\[2\] #### 引用[.reference_title] - *1* [jenkins stderr: Host key verification failed.](https://blog.csdn.net/qq_28035571/article/details/79473699)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Jenkins设置Git源问题-stderr: Host key verification failed.](https://blog.csdn.net/bigwood99/article/details/107073603)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值