我似乎无法屏蔽 Gitlab CI 上的变量 -
我正在尝试上传 ssh 私钥,无论我做什么,它都拒绝屏蔽它。
那是我试图在 Gitlab 上存储一个私钥,供我的生产服务器具有公钥的 Gitlab运行器使用。我不是在问如何在构建过程中将它介绍给跑步者,如这个问题的答案中所述
我使用的是 ed25519 密钥,因此字符开始时并非都是 base 64。
所以在生成密钥之后
$ cat gitlab
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmU....etc etc
-----END OPENSSH PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)
我通过管道将它传输到 base64
$ cat gitlab|base64
Run Code Online (Sandbox Code Playgroud)
没有喜悦。
Gitlab 似乎也将换行符引入粘贴的文本/变量字段
所以我做了
$ cat gitlab|base64|tr -d '\r'
Run Code Online (Sandbox Code Playgroud)
乃至
$ cat gitlab|base64|tr -d '\r'|xclip
Run Code Online (Sandbox Code Playgroud)
我找到了这个人 ,这到底是怎么回事
$ cat gitlab|base64|base32|tr -d '\r'|xclip
Run Code Online (Sandbox Code Playgroud)
都没有快乐。
任何人得到这个工作?
对我来说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
Run Code Online (Sandbox Code Playgroud)
这里 MY_SECRET_ENCODED 是您在界面中的变量, MY_SECRET_DECODED 是您在脚本中使用的变量。
| 归档时间: |
|
| 查看次数: |
2352 次 |
| 最近记录: |