Ansible存储多行SSH私钥为变量时出现YAML语法错误如何解决
问题原因
- YAML 中使用
|声明保留换行的多行块标量时,块内所有内容必须比所属变量的缩进层级至少高1级。你当前的私钥内容全部和my_private_key变量处于同一缩进层级,YAML解析器会将私钥的每行内容识别为独立的YAML键,找不到对应的值声明的冒号,因此触发语法报错。
修复方案
将整个私钥的所有行统一缩进2个空格(Ansible YAML规范默认使用2空格缩进,也可使用4空格,只要保持块内缩进一致即可),正确写法如下:
my_private_key: | -----BEGIN OPENSSH PRIVATE KEY----- kd02ke0ke0k20ke0ke40430940943090494 [...] Xekrfmfimimfimfeimiefmim4304309430943== -----END OPENSSH PRIVATE KEY-----
- 额外说明:
|标识会完整保留私钥的换行和格式,后续直接将变量写入文件即可得到有效的SSH私钥,不需要额外处理换行符。
内容的提问来源于stack exchange,提问作者pkaramol
相关产品推荐
相关产品推荐

