我坚持这个问题,我不知道解决它。
我编写了一个Shell脚本,它将通过传递我的私钥来使用Jenkins CLI调用我的作业.Jenkins版本是2.121.1
java -jar jenkins-cli.jar -s http://localhost:8080 -i ~/.ssh/id_rsa build RTT/RTT-CI-Tools/RTT-CI-Tools-Distribute -s -p SLAVE_REGEX=testserver
获取错误消息:
ERROR: anonymous is missing the Overall/Read permission
同一个脚本适用于另一个Jenkins(2.7.4)。如何解决这个问题。
请检查以下几点
1) USER exist on jenkins server as same on linux machine.
2) SSH Public key shared on Jenkins server is correct.(manage jenkins --> manage user --> click on ${USER} --> click on configure --> then check ssh public key is correct).
3) CMD i used(working) --> java -jar jenkins-cli.jar -ssh -user ${USER} -i ~/.ssh/id_rsa -s http://localhost:8080/jenkins/ build ${JOB_NAME}
请检查您是否正在从同一用户执行cmd。
4) SSH port should be enable on Jenkins (go to manage Jenkins--> configure Global security --> SSH Server... set SSHD Port Fixed eg 38844)
最近这个问题也出现了(使用cli来自动安装jenkins)。我能够通过在jenkins的denyAnonymousReadAccess
文件中将false
标志设置为config.xml
并重新启动jenkins来解决这个问题:
<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">
<denyAnonymousReadAccess>false</denyAnonymousReadAccess>
</authorizationStrategy>
您也可以使用auth param但是您应该在控制台中键入密码
java -jar jenkins-cli.jar -s http://localhost:8080/ -auth myLoggin:myPassword list-jobs