[Jenkins]执行git push命令报错fatal: could not read Username forxxx| 配置jenkins使用ssh方式连接git
报错信息如下:
+ git push
warning: push.default 未设置,它的默认值将会在 Git 2.0 由 'matching'
修改为 'simple'。若要不再显示本信息并在其默认值改变后维持当前使用习惯,
进行如下设置:
git config --global push.default matching
若要不再显示本信息并从现在开始采用新的使用习惯,设置:
git config --global push.default simple
参见 'git help config' 并查找 'push.default' 以获取更多信息。
('simple' 模式由 Git 1.7.11 版本引入。如果您有时要使用老版本的 Git,
为保持兼容,请用 'current' 代替 'simple' 模式)
fatal: could not read Username for 'http://gitlab.it.xxxx.com': No such device or address #关键错误
Build step '执行 shell' marked build as failure
Finished: FAILURE
解决办法:配置job使用ssh连接git而不是 username 和 password方式
配置jenkins通过ssh方式连接git后,再次执行push可以成功
+ git add .
+ git commit -m update
[分离头指针 bcebd49] update
2 files changed, 2 insertions(+)
create mode 160000 test-official
+ git push
warning: push.default 未设置,它的默认值将会在 Git 2.0 由 'matching'
修改为 'simple'。若要不再显示本信息并在其默认值改变后维持当前使用习惯,
进行如下设置:
git config --global push.default matching
若要不再显示本信息并从现在开始采用新的使用习惯,设置:
git config --global push.default simple
参见 'git help config' 并查找 'push.default' 以获取更多信息。
('simple' 模式由 Git 1.7.11 版本引入。如果您有时要使用老版本的 Git,
为保持兼容,请用 'current' 代替 'simple' 模式)
remote:
remote: To create a merge request for branch001, visit:
remote: http://gitlab.it.xxxx.com/qa/test-official/merge_requests/new?merge_request%5Bsource_branch%5D=branch001
remote:
To git@gitlab.it.xxxx.com:qa/test-official.git
1fddf4d..77c407b branch001 -> branch001
Finished: SUCCESS
操作步骤:
step1:生成密钥
如果本地还没有生成密钥,使用命令生成
git config --global user.name "ciadmin" #配置用户
git config --global user.email "ciadmin@xxxx.com" #配置邮箱
ssh-keygen -t rsa -C "ciadmin@xxxx.com" #生成密钥
step2:配置gitlab
将公钥 id_rsa.pub 复制到gitlab
cat ~/.ssh/id_rsa.pub
step3:配置jenkins
- job >>Configure>>Source Code Management>>Git>>Repository URL使用git方式
- 点击[Add],添加密钥
Kind >>SSH Username with private key >>选中 [Enter directly] 单选钮>>点击[Add]按钮
查看私钥
cat ~/.ssh/id_rsa
粘贴标记4
点击[Add]保存配置
其它参数:
参考文档: