每个部分涵盖了从之前的LTS版本升级,2.46.1部分涵盖从2.32.3升级。
升级到 Jenkins LTS 2.46.2
新的非远程处理CLI
为了解决使用基于远程处理的CLI所面临的安全问题,Jenkins 2.54中引入的新的非远程实现被反向移植到Jenkins的这个版本中,并且不推荐使用远程处理CLI模式。
从较旧版本的Jenkins升级的用户仍将启用远程处理模式。
建议在调整Jenkins CLI的所有用途以处理非远程协议后,禁用远程模式。
先前下载的`jenkins-cli.jar`将继续工作,除非CLI的远程处理模式被禁用。
新下载的`jenkins-cli.jar`现在还支持现有的SSH模式和CLI的新HTTP模式,并且调用需要传递新参数`-remoting`以使用远程模式。
这对于一些命令是必需的,通常在文件上操作或修改"当前构建"。
缓存的CLI认证无效
由于CLI身份验证缓存中发现的漏洞,在此发行版之前创建的现有缓存身份验证将不再有效,并且用户需要再次运行 login
CLI命令。
`login`CLI命令特定于CLI的远程处理模式。
无法通过GET访问多个网址
为了修复一些CSRF漏洞,几个操作的URL已经被更改为仅在通过POST接收请求时才起作用,可能需要CSRF crumb。
其中大部分不会通过 GET`访问, 但有一些可能。
例如,如果您在Web浏览器中直接访问URL `/quietDown
,则这将不再有效。
升级到 Jenkins LTS 2.46.1
JNLP4远程处理协议默认启用
JNLP4协议现在默认为JNLP代理连接启用。
它比JNLP3更可靠,并且也被加密,使其成为代理连接的最佳选择。
使用此协议可能需要升级代理上的+slave.jar+文件。
从SSHD中删除过时的密码
Jenkins公开了允许通过SSH使用CLI命令的SSH服务器。
在这个SSH服务器中,已经删除了对AES128CBC,TripleDESCBC和BlowfishCBC过时密码的支持。