最近Jenkins agent机器经常连不上git,console log里面说,用户名密码验证失败。然而,在jenkins > credentials里面配置的git用户名密码明明是正确的,可以成功登录的。
研究了一番,惊觉是windows credential manager在捣鬼,它藏在Control Panel(控制面板) > User Accounts > Credential Manager那里。也就是说,曾经在agent机器上安装及配置过git和git remote repo,于是git的用户名和密码就存在了credential manager那里,而且它会缓存起来。然后jenkins跑job时,就时不时用了windows机器缓存的用户名密码,而不是用Jenkins自己配置好的用户名密码。坑…
于是我把windows credential manager那里存的git帐号删了,觉得还不够彻底,又把agent机器上的git设置为每次都要输入用户名密码而不用缓存的。具体设置步骤如下:
cmd里面输入
git config --edit --global
然后就会进入vim,点击i(insert)进入vim编辑模式,在[core]下面增加一行配置akapass=,然后esc退出编辑模式,输入:wq!保存退出即可。
[user]
......
[core]
akapass=