【问题标题】:Jenkins CLI : ERROR: anonymous is missing the Overall/Read permissionJenkins CLI:错误:匿名缺少整体/读取权限
【发布时间】:2018-12-04 22:29:44
【问题描述】:

我被这个问题困住了,我不知道如何解决它。

我编写了一个 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) 中工作。如何解决此问题。

【问题讨论】:

  • 这是一个权限问题,您需要授予匿名访问权限
  • 脚本在另一个 jenkins 中工作,我们没有提供任何匿名访问。
  • 如果你想在 linux 中运行某些东西,你必须授予访问权限......你可以试试这个stackoverflow.com/questions/22717773/…

标签: jenkins command-line-interface ssh-keys jenkins-cli


【解决方案1】:

请检查以下几点

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)

【讨论】:

  • 谢谢,它对我有用。我还必须从堡垒主机打开对 Jenkins 端口 38844 的访问,因为我的 Jenkins 在私有子网中。
【解决方案2】:

您也可以使用 auth 参数,但您应该在控制台中输入您的密码

java -jar jenkins-cli.jar -s http://localhost:8080/ -auth myLoggin:myPassword list-jobs

【讨论】:

  • 可以,但将密码公开为开放文本并不是一个好习惯。
【解决方案3】:

最近我也遇到了这个问题(使用 cli 自动安装 jenkins)。我可以通过在 jenkins 的 config.xml 文件中将 denyAnonymousReadAccess 标志设置为 false 并重新启动 jenkins 来解决它:

  <authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">  
    <denyAnonymousReadAccess>false</denyAnonymousReadAccess>  
  </authorizationStrategy>  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    • 2021-10-31
    • 2020-08-16
    相关资源
    最近更新 更多