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

如何在Ansible中通过已加密vars变量创建id_rsa文件无需新增加密模板

Ansible 无需单独加密模板生成 id_rsa 私钥的实现方案

完全可以直接将私钥内容存入已加密的 vars 文件,无需额外新增单独的加密模板文件,具体操作流程如下:

步骤1:将私钥内容写入已加密的vars文件

在你现有的 ansible-vault 加密 vars 文件中新增存储私钥的变量,注意使用 | 标识符保留私钥的换行格式,示例如下:

# 加密vars文件中的变量定义
ssh_id_rsa_content: |
  -----BEGIN OPENSSH PRIVATE KEY-----
  你的私钥内容第一行
  你的私钥内容第二行
  ......
  -----END OPENSSH PRIVATE KEY-----

修改完成后正常保存即可,无需额外执行其他加密操作。

步骤2:使用template模块的content参数渲染生成私钥文件

Ansible 的 template 模块原生支持 content 参数,可以直接传入变量内容渲染,不需要指定本地模板文件路径,完全符合官方推荐的使用规范,playbook 示例如下:

- name: 生成目标主机SSH私钥文件
  ansible.builtin.template:
    content: "{{ ssh_id_rsa_content }}"
    dest: /home/目标用户名/.ssh/id_rsa
    owner: 目标用户名
    group: 目标用户所属用户组
    mode: '0600'

注意事项

  • 必须设置私钥文件权限为 0600,否则SSH服务会因私钥权限过高拒绝识别该文件
  • 写入vars文件时必须使用 | 多行字符串标识符,否则渲染出的私钥会丢失换行符导致格式错误无法使用
  • 执行playbook时需正常传入vault解密密码,与你之前使用加密vars文件的操作一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 21:15:10