Как правильно установить переменные Gitlab gitlab-ci - PullRequest
0 голосов
/ 18 июня 2020

Я хочу установить переменную 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 Ответ

1 голос
/ 19 июня 2020

Используйте кодировку base64, прежде чем помещать текст в переменную, а затем декодировать переменную обратно в ключ, используя base64.

То есть,

base64 your_key_file > key.base64

Затем поместите содержимое key.base64 в вашу переменную env.

Затем в вашем конвейере выполните

echo -n $PRIVATEKEY | base64 -d > key

, который поместит ваш исходный ключ в ключ file.

Примечание : будьте очень осторожны с добавлением закрытых ключей s sh в конвейеры. Это может представлять значительную угрозу безопасности.

...