我似乎无法屏蔽 Gitlab CI 上的变量 -
我正在尝试上传 ssh 私钥,无论我做什么,它都拒绝屏蔽它。
那是我试图在 Gitlab 上存储一个私钥,供我的生产服务器具有公钥的 Gitlab 运行器使用。我不是在问如何在构建过程中将它介绍给运行者,如对 this question 的回答中所述。
我使用的是 ed25519 key ,因此字符开始时并非都是 base 64。
所以在生成 key 之后
$ cat gitlab
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmU....etc etc
-----END OPENSSH PRIVATE KEY-----
我通过管道将它传输到 base64
$ cat gitlab|base64
没有快乐。
Gitlab 似乎也将换行符引入粘贴的文本/变量字段
所以我做了
$ cat gitlab|base64|tr -d '\r'
乃至
$ cat gitlab|base64|tr -d '\r'|xclip
我找到了 this guy
那是什么鬼
$ cat gitlab|base64|base32|tr -d '\r'|xclip
都没有快乐。
任何人得到这个工作?
最佳答案
给我 cat gitlab | base64 -w0
作品。
在你绝对想用 tr
,你会使用 tr -d '\n'
反而。
编辑 : 当然你还需要在使用它时取消base64。
这是一个可以消除混淆的示例:
silex@silex-laptop:/tmp$ echo secret > gitlab
silex@silex-laptop:/tmp$ MY_SECRET_ENCODED="$(cat gitlab | base64 -w0)"
silex@silex-laptop:/tmp$ echo $MY_SECRET_ENCODED
c2VjcmV0Cg==
silex@silex-laptop:/tmp$ MY_SECRET_DECODED = "$(echo MY_SECRET_ENCODED | base64 -d)"
silex@silex-laptop:/tmp$ echo $MY_SECRET_DECODED
secret
这里 MY_SECRET_ENCODED 是您在界面中的变量, MY_SECRET_DECODED 是您在脚本中使用的变量。
关于gitlab-ci - Gitlab 屏蔽变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60247900/