1. ホーム
  2. bash

[解決済み] Bash/Terminalで複数行の環境変数を書き出す方法 例: RSA秘密鍵

2022-02-17 06:30:46

質問

アプリの一つ github-backup は、環境変数として RSA 秘密鍵の使用を必要とします。

ターミナルでキーをエクスポートしようとすると、例えば次のようになります。 text export PRIVATE_KEY=-----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEA04up8hoqzS1+ ... l48DlnUtMdMrWvBlRFPzU+hU9wDhb3F0CATQdvYo2mhzyUs8B1ZSQz2Vy== -----END RSA PRIVATE KEY-----

うまくいかない......改行されているため。

少しググってみましたが、実行可能な解決策は見つかりませんでした・・・。
AWS Elastic Beansに複数行のRSA秘密鍵環境変数を設定する方法

エラーです。 -----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

その 作品 が、"のような気がします。 長ったらしい "アプローチ・・・・・・・・?

をご存知の方はいらっしゃいますか? よりシンプルに の方法を教えてください。
( 私は、"に期待しています。 初心者にやさしい あまり多くのステップを必要としないソリューションです。 )

解決するには?

キーのエクスポート

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をソースとするときはいつでもエクスポートされるようになります。