1、jenkins-slave 机器上git报错. Host key verification failed.
git pull
18:37:24 Host key verification failed.18:37:24 fatal: Could not read from remote repository.
18:37:24
18:37:24 Please make sure you have the correct access rights
18:37:24 and the repository exists.
clone 也是一样,都不好使。
具体现象是
1-如果在cmd中执行,git正常使用, .ssh 能正确起效.
2-如果在Jenkins中执行, git就报上述错误.
排查得知, jnlp 程序有一个Install as windows service 菜单项,手贱点了下。
然后某个晚上断电了,电脑起来后就以Service的途径在运行jenkins-slave.
目前尚不确定服务为什么找不到.ssh里的数据,但有一个简单的办法实现自动执行jnlp小程序:
[windows+R run] "shell:Startup", 打开 ['启动'文件夹], 将jnlp小程序扔里面.
2、jenkins 中 git commit 失败.
git commit [*******] -m [******]
18:49:32
18:49:32 *** Please tell me who you are.
18:49:32
18:49:32 Run
18:49:32
18:49:32 git config --global user.email "you@example.com"
18:49:32 git config --global user.name "Your Name"
18:49:32
18:49:32 to set your account's default identity.
18:49:32 Omit --global to set the identity only in this repository.
18:49:32
18:49:32 fatal: unable to auto-detect email address (got 'Jenkins@********.(none)')
具体现象是
1-如果在cmd中执行git commit , 没毛病, 使用 git config -l 查看,也都是有的.
2-在jenkins中就报上述错误.
排查后得知
如果在jenkins 中运行git config -l, 确实没有设置 user.email / user.name
如果用where git , 可以看到在cmd中,路径为
C:\Program Files\Git\cmd\git.exe
C:\Program Files\Git\bin\git.exe
而在bash,或jenkins中,则为
C:\Program Files\Git\mingw64\bin\git.exe <-----------
C:\Program Files\Git\cmd\git.exe
C:\Program Files\Git\bin\git.exe
解决方法是在jenkins中执行git config user.email , git config user.name.
PS: 我推测上述问题都可以基于 jenkins中运行的是 mingw64\bin\git.exe 来设计其他解决方法。
比如问题1:拷贝 .ssh 到 某个目录下,不过 mingw64\ | C:\Program Files\Git\ | C:\Program Files\Git\usr 我都试了,没好使:(
问题2:不使用global config, 而是使用local的.