鉴权失败有很多原因,这里只是其中一个很特殊的情况,原因是控制台字符编码问题。
1、现象
在流水线中使用checkout拉取,例如:
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: '$REPOSITORY_NAME'],[$class: 'CleanBeforeCheckout']], submoduleCfg: [], userRemoteConfigs: [[ credentialsId: 'globaluser',url:'http://10.1.11.100:6000/bosima/Test1.git']]])
因为是私有仓库,这里使用了Jenkins凭据:credentialsId
确认凭据中的用户名和密码都没有问题,但是每次执行都是鉴权失败(returned status code 128,Authentication failed),返回值类似:
Caused by: hudson.plugins.git.GitException: Command "C:\Program Files\Git\bin\git.exe fetch --tags --force --progress -- http://10.1.11.144:3000/bosima/Test1.git +refs/heads/*:refs/remotes/origin/*" returned status code 128:
stdout:
stderr: fatal: Authentication failed for 'http://10.1.11.144:3000/bosima/Test1.git/'
2、原因
尝试了各种方案,想到最开始的时候是好用的,所以不断卸载自己做过的修改和配置,最后发现是字符编码问题。
为了解决Window环境下控制台输出中文乱码的问题,修改了注册表:
[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
增加了一个项:
"AutoRun"="chcp 65001"
去掉这个注册表项目,问题得以解决。原因应该是在控制台执行git命令时用户名和密码被编码为无法正确识别的字符。
发表评论
相关文章
国内AI资源汇总,AI聊天、AI绘画、AI写作、AI视频、AI设计、AI编程、AI音乐等,国内顺畅访问,无需科学上网。
扫码或点击进入:萤火AI大全
文章分类
最新评论