当前位置:

首页 > 软件教程 > jenkins配置git仓库步骤与凭证设置教程

jenkins配置git仓库步骤与凭证设置教程

遇到Jenkins拉取代码报错?本教程手把手教你配置Git仓库地址,正确添加SSH或HTTP凭证,并演示在自由风格项目和Pipeline中如何调用,彻底解决权限验证难题。

本文目录

    明明Git地址复制对了,Jenkins构建时却总是报“Permission denied”或者“Authentication failed”,这种挫败感做运维的朋友都懂。很多时候,问题不在网络,而在Jenkins不知道“你是谁”,或者它手里的“钥匙”不对。

    别急着去改服务器防火墙,最先要检查的其实是Jenkins里的“凭证”和“源码管理”这两处设置是否匹配。只要理清了密钥生成、凭证录入和任务配置这三个环节,90%的拉取失败都能迎刃而解。

    准备正确的访问钥匙

    在让Jenkins去拉代码之前,你得先确定它用什么身份去拉。如果是私有仓库,通常有两种方式:HTTPS账号密码或SSH密钥。对于自动化构建,SSH密钥更稳定,也无需担心密码过期问题。

    如果你选择SSH,需要在运行Jenkins服务的服务器上生成一对密钥。注意,必须使用Jenkins启动用户(通常是jenkins用户)来执行ssh-keygen命令,否则生成的密钥文件权限可能不对,导致Jenkins进程无法读取。

    jenkins配置git仓库步骤与凭证设置教程

    在Jenkins用户环境下生成SSH密钥对

    生成后,将公钥(.pub文件内容)添加到Git仓库平台的“Deploy Keys”或你的个人账号SSH设置中。这一步是告诉Git服务器:“这个Jenkins服务器是被允许的”。

    在Jenkins中添加凭证

    钥匙准备好了,接下来要把它交给Jenkins保管。登录Jenkins后台,点击左侧菜单的“Manage Jenkins”(系统管理),找到“Credentials”(凭证)选项。

    建议创建一个专门的域,比如“git-repos”,方便后续管理。点击“Global credentials”(全局凭证)下的“Add Credentials”(添加凭证)。这里有个关键选择:类型选什么?

    jenkins配置git仓库步骤与凭证设置教程

    选择SSH Username with private key类型并粘贴私钥

    如果你用的是SSH密钥,类型选择“SSH Username with private key”。Username填git(大多数平台如GitHub、GitLab通用),Private Key选择“Enter directly”,然后把刚才生成的私钥内容完整粘贴进去。ID字段非常重要,建议起一个易懂的名字,比如“git-ssh-key”,后面配置任务时要靠它来识别。

    如果是HTTPS方式,则选择“Username with password”,填入你的Git账号和密码(或Personal Access Token)。记得勾选“Treat username as secret”如果平台有特殊要求。

    创建任务并关联仓库

    凭证存好后,新建一个Freestyle项目或Pipeline。在“Source Code Management”(源码管理)部分,选择Git。

    Repository URL填入你的仓库地址。如果是SSH方式,地址格式通常是git@github.com:user/repo.git;如果是HTTPS,则是https://github.com/user/repo.git。这里最容易犯的错误是协议混用:选了SSH凭证却填了HTTPS地址,或者反过来。

    jenkins配置git仓库步骤与凭证设置教程

    在Git配置栏选择对应的凭证ID

    在Credentials下拉框中,选择你刚才创建的那个凭证ID。如果列表里没出现,检查一下凭证的作用域是否是Global,或者是否在当前文件夹下可见。点击“Test Connection”或保存后尝试构建,观察控制台输出。

    Pipeline中的特殊写法

    如果你使用的是Pipeline脚本,配置方式略有不同。你不需要在界面上下拉选择,而是在Jenkinsfile中使用withCredentials或直接引用凭证ID。

    对于SSH密钥,通常Jenkins会自动处理,只要在checkout步骤中指定了正确的URL和凭证ID即可。例如:

    pipeline {
        agent any
        stages {
            stage('Checkout') {
                steps {
                    checkout([$class: 'GitSCM', 
                        branches: [[name: '*/main']], 
                        userRemoteConfigs: [[credentialsId: 'git-ssh-key', url: 'git@github.com:user/repo.git']]
                    ])
                }
            }
        }
    }
    

    注意credentialsId必须与你在凭证管理中设置的ID完全一致。如果使用了HTTPS且需要处理密码,可以使用withCredentials块来包裹git clone命令,避免明文暴露。

    jenkins配置git仓库步骤与凭证设置教程

    Jenkinsfile中指定credentialsId的代码示例

    排查常见的“坑”

    如果配置完还是报错,先看控制台日志的具体错误码。Host key verification failed通常是因为Jenkins用户第一次连接Git服务器,没有接受主机指纹。解决方法是切换到jenkins用户,手动ssh一次目标Git服务器域名,输入yes接受指纹。

    另外,检查私钥格式。OpenSSH新版生成的密钥可能是新格式,某些旧版Jenkins插件可能兼容性不佳,尝试用ssh-keygen -m PEM重新生成传统格式的密钥往往能解决问题。

    最后,确认Jenkins服务器本身能连通Git服务器的端口。有时候不是凭证错了,而是单纯的网不通。用curl或telnet测试一下端口,排除网络层面的干扰,剩下的就是配置细节的打磨了。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    软件教程 DevOps CI/CD jenkins
    相关文章 更多
    jenkins构建失败怎么查看原因及日志排查教程
    jenkins构建失败怎么查看原因及日志排查教程

    面对Jenkins构建失败,通过解析控制台输出、检查系统日志和验证节点状态,快速区分代码逻辑错误与环境配置问题,提供高效的故障排查思路。

    GitLab配置SSH免密登录步骤详解
    GitLab配置SSH免密登录步骤详解

    通过本教程学习如何在Windows、Mac或Linux系统中生成SSH密钥,并将公钥安全添加到GitLab平台,实现Git操作的免密认证,简化日常代码管理流程。

    jenkins自动部署jar包教程及完整操作流程
    jenkins自动部署jar包教程及完整操作流程

    手把手教你配置Jenkins自动部署Java应用。涵盖Git源码管理、Maven构建配置、SSH远程执行脚本及JAR包替换重启的全流程操作,解决手动部署繁琐易错的问题。

    如何使用正确的凭据登录 Jenkins
    如何使用正确的凭据登录 Jenkins

    简介 Jenkins 是一个广泛使用的开源自动化服务器,可帮助开发人员构建、测试和部署他们的软件项目。在本教程中,我们将指导你使用正确的凭据登录 Jenkins,并解决你可能遇到的任何登录问题。 Jenkins 简介 Jenkins 是一款广受欢迎的开源自动化服务器,用于构建、测试和部署软件应用程序

    如何设置 Jenkins 在系统启动时自动启动
    如何设置 Jenkins 在系统启动时自动启动

    简介 Jenkins作为一款备受青睐的开源自动化服务器,为开发人员构建、测试及部署软件项目提供了有力支持。在本教程里,我们将引领你完成Jenkins的配置,使其能在系统启动时自动开启,保证你的持续集成/持续交付(CI/CD)工作流程得以顺畅运行。 Jenkins 简介 Jenkins 是一款广受欢迎

    运维|devops|JenkinsPipeline流程构建
    运维|devops|JenkinsPipeline流程构建

    运维|devops|Jenkins Pipeline流程构建基于 jenkins Version 2.541.3 实操案例Jenkins Pipeline基于 Groovy 的持续交付流水线代码(Pipeline as Code)Pipeline script vs Pipeline script

    配置Jenkins自动拉取gitlab中的代码并部署方式
    配置Jenkins自动拉取gitlab中的代码并部署方式

    首先安装Jenkins必要插件并配置SSH密钥以实现免密拉取代码,然后创建Jenkins任务并设置构建后自动同步到Web服务器,最后一步配置GitLabWebhook使得代码推送时自动触发部署,从而最终完成一套完整的自动化CI/CD流水线搭建。

    Sublime配置Groovy环境_编写Jenkins流水线代码
    Sublime配置Groovy环境_编写Jenkins流水线代码

    SublimeText无法直接运行Groovy脚本,需依赖外部环境执行。它为编写Jenkinsfile提供高亮、校验和自动补全,通过安装Grv等插件增强PipelineDSL关键词语法识别。不建议配置构建系统本地执行,验证应依赖Jenkins环境。注意UTF-8编码和空格缩进。

    怎样在CodeIgniter中使用Jenkins_CodeIgniter持续集成服务器【配置】
    怎样在CodeIgniter中使用Jenkins_CodeIgniter持续集成服务器【配置】

    先说句大实话:Jenkins这个工具本身可不认识CodeIgniter,它的大脑里就只有三件事:拉代码、跑命令、发通知。CodeIgniter作为PHP框架,压根儿没有编译这个步骤,所以所谓的“在CodeIgniter里用Jenkins”,说穿了就是——用Jenkins自动去执行你PHP项目里的测试

    Linux怎么安装Jenkins并配置Java环境 Linux自动化部署实战详解
    Linux怎么安装Jenkins并配置Java环境 Linux自动化部署实战详解

    Linux怎么安装Jenkins并配置Ja va环境 Linux自动化部署实战详解 在CentOS 8或者Rocky Linux 8上部署Jenkins,第一步往往就决定了成败:ja va -version的输出必须是1.8,也就是JDK 8。如果版本不对,Jenkins要么启动失败,要么Web界面

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。