如何正确设置Gitlab gitlab-ci变量

Jan*_*uka 5 linux ssh continuous-integration gitlab

我想设置一个gitlab变量,以便它可以被gitlab-ci.yaml

我想设置的变量是 assh private key并且它正在被复制到服务器。

问题: - 当我如下设置私钥时,它会更改该私钥的结构,从而导致密钥不正确。

在此输入图像描述

之前的私钥:(出于安全考虑我只放了一半)

-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAmJwjZmGw7sitfoCb88xpn6bfgoSKVat5j8rvyGgOkX/Eavag
32izNxWbZvQ249nE1rOwpWAmxtN+JyFEo6IlVhfbrwfRGen+RFboARAe5s5/6ETI
c70s68xFmZxHJYJlt+lJoTOz+YnoK4QaIFbFoh/keRTSnIr7gMlDjv7VFH4VBhJ4
Jpp9TtmK5hsmpnESWYameePdFuo9vZFssrqLZXBGISGEOafGuZhT6eh/iG3sNeeK
.
.
.
-----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

从管道保存到服务器后的私钥:

-----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAz26/7zOELE87ColkJBhNWBQcvL7DjhdRCeWmHeeSPZ2PSjZS KP1+a/J0eHuBHvVIOrZB8oyPnfXfpOlga5y2TIvxLTgNNFzbzGScBIYHNQ9sBzAB w3IEiHzkJCYYY3rWuUMlJtLIyWnaIS8CBYQvO/DlcB70V5z9kWuu5VJDvV8esOnH +Pe2pk/08R2Q610UwOm4blJi0UAVd89Cd3/kPuC5xln+wumdqtQ8ZiAKRvZiXUgK 
.
.
.
b4ewuT1RZXkO6WyP/CSdFjEvYi9pxErXYMMY5hFFJCnzQcEQPXqW -----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

我怎样才能避免这种迷失方向呢?

tal*_*dor 7

在将文本放入变量之前使用 Base64 编码,然后也使用 Base64 将变量解码回密钥。

IE,

base64 -w0 your_key_file > key.base64

然后将内容放入key.base64您的环境变量中。

然后在你的管道中做

echo -n $PRIVATEKEY | base64 -d > key

这会将您的原始密钥放入密钥文件中。

旁注:将 ssh 私钥添加到管道时要非常小心。这可能会带来重大的安全风险。