如何在Bash/终端中导出多行环境变量例如:RSA私钥 [英] How to Export a Multi-line Environment Variable in Bash/Terminal e.g: RSA Private Key

查看:7
本文介绍了如何在Bash/终端中导出多行环境变量例如:RSA私钥的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们的一个应用github-backup需要使用RSA私钥作为环境变量。

只需尝试在终端中导出密钥It,例如: 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"
"}END{print out}' $file| sed 's/
$//')"

然后运行以下命令:

source keytoenvar.sh PRIVATE_KEY ./gitbu.2018-03-23.private-key.pem

有效但它看起来像是一种"冗长的"方法...🤔

有没有人知道更简单的方法?
(我希望有一个"初学者友好的"解决方案,没有太多的"步骤"...)

推荐答案

导出密钥

export PRIVATE_KEY=`cat ./gitbu.2018-03-23.private-key.pem`

test.sh

#!/bin/bash

echo "$PRIVATE_KEY"; 

如果要将密钥与其他环境变量一起保存到.env文件中,只需将.env文件中的单引号中的私钥字符串...例如:sh exports HELLO_WORLD='-----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEA04up8hoqzS1+APIB0RhjXyObwHQnOzhAk5Bd7mhkSbPkyhP1 ... iWlX9HNavcydATJc1f0DpzF0u4zY8PY24RVoW8vk+bJANPp1o2IAkeajCaF3w9nf q/SyqAWVmvwYuIhDiHDaV2A== -----END RSA PRIVATE KEY-----' 因此,以下命令将起作用:

echo "export PRIVATE_KEY='`cat ./gitbu.2018-03-23.private-key.pem`'" >> .env

后跟:

source .env

现在,密钥将位于您的.env文件中,并且只要您获取.env,就会将其导出。

这篇关于如何在Bash/终端中导出多行环境变量例如:RSA私钥的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆