"Server returned HTTP response code: 403" 安装 Jenkins 插件时出错

"Server returned HTTP response code: 403" error installing Jenkins plugin

我在尝试为 Jenkins 安装插件时看到以下错误。

Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\Users\tech>cd C:\Program Files (x86)\Jenkins

C:\Program Files (x86)\Jenkins>java -jar jenkins-cli.jar -s http://localhost:8081/ install-plugin ant.hpi -deploy -restart

Exception in thread "main" java.io.IOException: No X-Jenkins-CLI2-Port among [null, X-Required-Permission, X-Jenkins,
X-You-Are-In-Group, X-Hudson, Content-Length, Expires, X-You-Are-Authenticated-As, X-Permission-Implied-By, Set-Cookie,
Server, X-Content-Type-Options, Date, X-Jenkins-Session, Content-Type]
        at hudson.cli.CLI.getCliTcpPort(CLI.java:290)
        at hudson.cli.CLI.<init>(CLI.java:133)
        at hudson.cli.CLIConnectionFactory.connect(CLIConnectionFactory.java:72)
        at hudson.cli.CLI._main(CLI.java:474)
        at hudson.cli.CLI.main(CLI.java:389)
        Suppressed: java.io.IOException: Server returned HTTP response code: 403 for URL: http://localhost:8081/cli
                at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
                at hudson.cli.FullDuplexHttpStream.<init>(FullDuplexHttpStream.java:78)
                at hudson.cli.CLI.connectViaHttp(CLI.java:163)
                at hudson.cli.CLI.<init>(CLI.java:137)
                ... 3 more
  1. 我已将 Jenkins 安装为 Windows 安装程序
  2. Windows 服务已启动
  3. 然后我复制了jenkins-cli.jar到jenkins文件夹
  4. ant.hpi 文件位于 jenkins 文件夹本身(我也复制到不同的驱动器并在安装过程中给出了绝对路径)
  5. 输入安装插件的命令导致如上图错误

来自 CLI documentation 的故障排除部分:

Go to Manage Jenkins > Configure Global Security and choose "Fixed" or "Random" under TCP port for JNLP agents.

默认禁用CLI;您需要在 Jenkins 中启用此 TCP 端口,以便 CLI 客户端可以连接。


此外,假设您的 Jenkins master 可以访问互联网,您只需在命令行上指定 ant 插件 ID 即可直接从 Jenkins 更新安装 Ant 插件(及其依赖项!)中心,而不必下载和指定每个所需的 .hpi 文件。

经过一些尝试和错误后,通过 jenkins-cli

的别名语句让它工作

别名jenkins-cli='java -jar /var/lib/jenkins/jenkins-cli.jar -auth admin:admin'

在这个别名之后,你可以使用如下命令:

jenkins-cli求助 jenkins-cliwho-am-i

和许多其他命令(由帮助列出)

就我而言,我为 Jenkins 的 'admin' 用户添加了 SSH 密钥,并将其密码更改为 'admin'