有可能在构建作业中获取Jenkins密码吗



我不确定之前是否已经问过/讨论过这个问题。

在我的Jenkins中,我设置了LDAP身份验证,在我的一项工作中需要该密码才能使用该密码远程登录到另一台服务器并在那里执行一些任务

假设远程任务是通过ant任务中的ssexec执行的,该任务需要用户名密码。我不希望用户以构建参数的形式再次输入密码,有没有办法在构建作业中获得用于Jenkins身份验证的密码???

[I] 有没有办法在构建作业中获得用于Jenkins身份验证的密码?

并非如此。Jenkins不会在您登录后保留密码,它只是将密码传递给LDAP服务器足够长的时间来验证您是否应该进行身份验证。

因此,您需要定义Jenkins中可在构建过程中使用的凭据。您可以使用凭据绑定插件来设置作业可以访问的固定用户名/密码。

如果您的要求是而不是的凭据可用于作业的任何构建,而是手动启动构建的用户必须提供这些凭据(这意味着计划或以其他方式触发的构建是不可能的),我认为从1.1版起也支持这一点。为作业定义凭据类型的参数,该参数将通过绑定中的变量扩展使用。然后让用户在其用户配置页面(/me/configure)中定义这些凭据。然后,当选择使用参数构建时,他们应该看到自己的个人凭据并能够选择它们。用户需要对作业具有凭据/UseOwn权限。

未来的另一个选择是用户名/密码凭据的子类型,它根本不存储密码(可能只是一个"咸"散列,使用jBCrypt),并以某种方式提示您在凭据被视为有效之前输入密码,可能在几分钟后过期。该模式尚未实施,但对安全要求更严格的网站有用。

(常规凭据是加密存储的,但默认的安全存储机制将主加密密钥保存在$JENKINS_HOME中——只要你不允许任何不是Jenkins管理员的人访问你的服务器,那么它就非常安全,当然,只要你将主计算机配置为零执行器,这样人们就不能在它上运行构建,只能在从属计算机上运行是允许通过一些其他方式注入主密钥的替代存储机制。)

最好的方法是允许远程服务器中的jenkins用户获得权限。

最新更新