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

时间:2020-06-18 15:48:57

标签: linux ssh continuous-integration gitlab

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

我要设置的变量是ssh private key,它正被复制到服务器上。

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

enter image description here

之前的私钥:(出于安全原因,我只会放一半的密钥)

-----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-----

如何避免这种迷失方向?

1 个答案:

答案 0 :(得分:1)

在将文本放入变量中之前,先使用base64编码,然后再使用base64将变量解码回键。

base64 your_key_file > key.base64

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

然后在您的管道中执行

echo -n $PRIVATEKEY | base64 -d > key

将原始密钥放入 key 文件中。

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