You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Rundeck密钥存储传递至脚本?认证失败问题排查

问题根源与解决方案

你的问题出在没有用Rundeck正确的语法引用密钥存储中的密码——直接写keys/JIRA的话,Rundeck不会自动把这个路径替换成实际的密码,curl会把keys/JIRA当成明文密码发送,自然会认证失败。下面分两种常用场景给你正确的操作方式:

场景1:直接在嵌入式脚本中引用密钥存储

如果不想通过作业选项中转,直接在脚本里调用密钥存储的内容,需要用Rundeck的数据变量语法:

# 注意:-XN是错误参数,改成你实际需要的请求方法(比如POST/GET)
curl -X POST -u user:${data.keys.JIRA} <你的JIRA接口URL>

这里的${data.keys.JIRA}就是Rundeck识别密钥存储路径的标准写法,它会自动替换为keys/JIRA对应的密码值。

场景2:通过作业选项关联密钥存储(更推荐)

这种方式更安全,还能控制权限和复用选项,步骤如下:

  1. 创建作业选项时,选择类型为Password或Secure Remote Authentication;
  2. 在选项的配置里,把默认值(或可选值)关联到密钥存储的keys/JIRA条目;
  3. 假设你给这个选项命名为jiraPassword,脚本里就用选项变量引用:
    curl -X POST -u user:${option.jiraPassword} <你的JIRA接口URL>
    

额外注意事项

  • 确保执行作业的Rundeck用户/组,拥有keys/JIRA这个密钥存储条目的读取权限(在密钥存储的权限设置里配置);
  • 检查curl的请求方法参数:-XN不是合法参数,-X后面要跟具体的HTTP方法,比如POST、GET;
  • 如果你用的是较旧的Rundeck版本,变量语法可能是@data.keys.JIRA@,可以根据版本调整。

内容的提问来源于stack exchange,提问作者Milister

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:13:57