我想设置一个gitlab
变量,以便gitlab-ci.yaml
可以使用它
我要设置的变量是ssh private key
,它正被复制到服务器上。
问题:-当我按如下所示设置私钥时,它会更改该私钥的结构,从而导致密钥不正确。
之前的私钥:(出于安全原因,我只会放一半的密钥)
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAmJwjZmGw7sitfoCb88xpn6bfgoSKVat5j8rvyGgOkX/Eavag
32izNxWbZvQ249nE1rOwpWAmxtN+JyFEo6IlVhfbrwfRGen+RFboARAe5s5/6ETI
c70s68xFmZxHJYJlt+lJoTOz+YnoK4QaIFbFoh/keRTSnIr7gMlDjv7VFH4VBhJ4
Jpp9TtmK5hsmpnESWYameePdFuo9vZFssrqLZXBGISGEOafGuZhT6eh/iG3sNeeK
.
.
.
-----END RSA PRIVATE KEY-----
从管道保存到服务器后的私钥:
-----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAz26/7zOELE87ColkJBhNWBQcvL7DjhdRCeWmHeeSPZ2PSjZS KP1+a/J0eHuBHvVIOrZB8oyPnfXfpOlga5y2TIvxLTgNNFzbzGScBIYHNQ9sBzAB w3IEiHzkJCYYY3rWuUMlJtLIyWnaIS8CBYQvO/DlcB70V5z9kWuu5VJDvV8esOnH +Pe2pk/08R2Q610UwOm4blJi0UAVd89Cd3/kPuC5xln+wumdqtQ8ZiAKRvZiXUgK
.
.
.
b4ewuT1RZXkO6WyP/CSdFjEvYi9pxErXYMMY5hFFJCnzQcEQPXqW -----END RSA PRIVATE KEY-----
如何避免这种迷失方向?
答案 0 :(得分:1)
在将文本放入变量中之前,先使用base64编码,然后再使用base64将变量解码回键。
即
base64 your_key_file > key.base64
然后将key.base64的内容放入环境变量中。
然后在您的管道中执行
echo -n $PRIVATEKEY | base64 -d > key
将原始密钥放入 key 文件中。
旁注:在向管道添加私密ssh密钥时要非常小心。这可能会带来重大的安全风险。