【发布时间】:2018-09-02 14:38:42
【问题描述】:
我们的一个应用程序github-backup 需要使用 RSA 私钥作为环境变量。
只需尝试在终端中导出密钥,例如:
text
export PRIVATE_KEY=-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA04up8hoqzS1+
...
l48DlnUtMdMrWvBlRFPzU+hU9wDhb3F0CATQdvYo2mhzyUs8B1ZSQz2Vy==
-----END RSA PRIVATE KEY-----
不起作用...因为换行符。
我做了一些谷歌搜索,但没有找到可行的解决方案...
例如:How to set multiline RSA private key environment variable for AWS Elastic Beans
错误:
-----END RSA PRIVATE KEY-----': not a valid identifier
按照以下说明进行操作: http://blog.vawter.com/2016/02/10/Create-an-Environment-Variable-from-a-Private-Key
使用以下行创建了一个名为 keytoenvar.sh 的文件:
#!/usr/bin/env bash
file=$2
name=$1
export $name="$(awk 'BEGIN{}{out=out$0"\n"}END{print out}' $file| sed 's/\n$//')"
然后运行以下命令:
source keytoenvar.sh PRIVATE_KEY ./gitbu.2018-03-23.private-key.pem
这有效,但它似乎是一种“冗长”的方法...... ????
有谁知道更简单的方法?
(我希望没有太多“步骤”的“初学者友好”解决方案......)
【问题讨论】:
-
您的 .sh 脚本有问题:您尝试使用
export $var(按引用/值)但应该改为export var(按名称)。无论如何,答案很简单:bash允许多行字符串文字,只要它们被引用。使用单引号或双引号。 -
@MarkHu 你的方法不起作用。
-
除非我误解了我正在查看的内容,否则您已经在 Stack Overflow 上发布了一个私钥供全世界查看。已经一年了,但如果此密钥仍然有效,您应该更改它。
-
@rp.beltran 密钥不够长,不能成为有效的 RSA 私钥。但感谢您的关心。 :-)
-
好点,我的坏
标签: bash shell environment-variables multiline private-key