我需要在YAML文件中存储一个RSA密钥对,但是对yaml语法的理解仍然有限且缺乏示例让我寻找答案.
我将开始研究我所拥有的东西,但我想知道是否有人能够快速而简洁地解释如何在yaml中存储这种性质的东西.
Lak*_*eja 22
您可以在 yaml 文件中添加 ssh 密钥,如下所示 -
---
ssh-key: |-
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn
NhAAAAAwEAAQAAAQEAssBRe91wZ0TJBIWK2V1NH/ourcFPb0cA4ln32a3j5QITMS3zhs/o
euh8jPJ9eca93B+mfep5ly/UjwmDctGbwX54sJngE4Vuv5FgqctR8oHTxV+V18UdolBSsy
yiAVycGUexN2yz7P5JBzwfOG3WEwNe4dNVzmFj51nXAlaX+MB+wLfrZfU1vQpqmU8Esiu+
Hdab948qhmGlMepBw+M4Z7wVfgfz855ywxgL3NrVk2WhXxE9ng/jTLjHKkxKE/3sM/81wt
bvjejPvEMeFPD2XXBZSPi7TpgOiMBWDPXUwbrDYH6S6J2HAvYgwDm1pdQZGrOLrTBVJJE/
DX1KpYZJzQAAA9DSZOo10mTqNQAAAAdzc2gtcnNhAAABAQCywFF73XBnRMkEhYrZXU0f+i
6twU9vRwDiWffZrePlAhMxLfOGz+h66HyM8n15xr3cH6Z96nmXL9SPCYNy0ZvBfniwmeBP
hW6/kWCpy1HygdPFX5XXxR2iUFKzLKIBXJwZR7E3bLPs/kkHPB84bdYTA17h01XOYWPnWd
cCVpf4wH7At+tl9TW9CmqZTwSyK74d1pv3jyqGYaVN6kHD4zhnvBV+B/PznnLDGAvc2tWT
ZaFfET2eD+NMuMcqTEoT/ewz/zXC1u+N6M+8Qx4U8PZdcFlI+LtOmA6IwFYM9dTBusNgfp
LonYcC9iDAObWl1Bkas4itMFUkkT8NfUqlhknNAAAAAwEAAQAAAQBN1kUlROX/cgp+t5Ag
2uoMtKrC6tymPir6ZebxmTEVtfOZhML4v2wiqT4jOiy9bHecdQPQ7NuJpEBREPl2dCP4/B
OeA0OUHSx+qtWG2oySp0oKNndPf/xJg+SfNR5OrX8j2v4mfmVTG9+9EMcfkWSY3uzgNWC1
/967DXn9AKwomx8yszA7YY0vKanLPx5C14WtzMPSbfwYZoKV4ddBHAF/7JHXAXxMisc9Ud
kziaS8SV4YJt7gSYKKMvzOEj+uiyk9DKoYWf6t++SQ93CUnZKLfhwYTUx/rsYt6ubblQeP
IHI/j8LKiVz6nvyDt2NXSJ2Z2j0s6roREYgnLaqbjlPZAAAAgQC6DgqTehb2XTrg69D8lt
Lyo5sutB3bTIHyg6GBSBW2qYh3D2PQaWdrcYe7WYGtp6OGmTgGcXX0DBCCTtrwTdxsPVeL
XhC/HBY271v9T18Ur4h310iJWVPJ8I7TgJuaSsfui/04NcqcW5XwFy6DHDQKxNwDhEscwg
wIaUrd8UYfkAAAAIEA552RMzZ5OCAEryh1OXnV3EeqhumsCbET6dpDOpSQnHss7u3CZ8d6
2LwHQJ/fjwDcrMYwEUwDkNoZjhEmj1e5LVTLjRS02VBgjg7RnphpuaphPZ+CDNlq3Om5C9
xW96+4eC9/T7SRaspF3FxhgtPUMI1beu1QnpL0jduT/GQSqaMAAACBAMWR+CLktU6cTBH7
RnfnB2K7E8slA8/hSGUZJ35JXJj5XujQgaf2d8hi4Lmt8smBojaERlCxxx3B9hWVYRkwCM
C8YRNCLnBgR2CCp27D0wuadL9aFITlx91GPytF9BKxzy949VaF6SEw9M86oouj362u/BvP
CO7Hnjlg77HRNFXPAAAAFWxrYW1pcmVkZHlAdm13YXJlLmNvbQECAwQF
-----END OPENSSH PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)
请注意,SSH 密钥缩进一级。
Sno*_*all 14
您可以将密钥存储为文本("ASCII-armored"/ base 64编码).从维基百科,YAML中多行字符串的语法是:
- title: An example multi-line string in YAML
body : |
This is a multi-line string.
"special" metacharacters may
appear here. The extent of this string is
indicated by indentation.
Run Code Online (Sandbox Code Playgroud)
截至2016年10月27日,这是Google搜索“ yaml rsa密钥”时的第一个结果,因此我想在Yaml中添加有关RSA密钥所需的特定语法的答案。
如果您将密钥包含在yaml文件的一行中,则没有问题。如果您想将其拆分为不同的行以提高可读性,并且不能在生成的字符串中接受换行符,则唯一的选择似乎是带有转义码的双引号。
就我而言,我需要一个生成的单行无空格字符串,因为模板引擎正在使用键定义将键插入脚本变量中。以下语法将每行连接在一起且没有空格(请注意每行上的“ \”用于删除换行符):
yourKey: "-----BEGIN PUBLIC KEY-----\
xxx...\
yyy...\
zzz...\
-----END PUBLIC KEY-----"
result: "-----BEGIN PUBLIC KEY-----xxx...yyy...zzz...-----END PUBLIC KEY-----"
Run Code Online (Sandbox Code Playgroud)
可以在SO上找到关于字面量格式的很好参考:https://stackoverflow.com/a/21699210/4228798
通过创建 pem 文件将密钥存储在 yaml 文件中是一个很好的做法
\n\n security:\n publickeypemfile: /config/env/xyz.pem\n keystorefile: /secret/pqr.jks\n testmode: true\n\n\nxyz.pem: |-\n -----BEGIN PUBLIC KEY\xe2\x80\x94\xe2\x80\x94\nLine 1\nLine 2\nLine 3\n\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6.\n-----END PUBLIC KEY-----\nRun Code Online (Sandbox Code Playgroud)\n