2016-08-31 2 views
0

シェルの初期化時にenvironment variableに秘密のApiキーを含めたいとします。しかし、私はその環境変数をプレーンテキストファイルに公開したくありません。bash/zshの初期化時に.profileに秘密のコンテンツをロードする

これを行うための組み込みのメカニズムやスクリプトがあるかどうかは疑問でした。

私はgit-cryptを使って暗号化されたgitリポジトリを考えていました。そして、(.profile上で)初期化すると、それを解読し、それをソースし、それを暗号化して他のユーザーに読めるようにします。

SECRETS_FILE=~/.secrets.sh 
[email protected] 
profile_decrypt(){ 
    gpg -d ${SECRETS_FILE}.asc > ${SECRETS_FILE} # Decrypt file 
    rm ${SECRETS_FILE}.asc 
} 

profile_encrypt() { 
    gpg -ea -r ${GPG_ID} ${SECRETS_FILE} # Encrypt file using ascii output 
    rm ${SECRETS_FILE} 
} 
profile_decrypt 
source $SECRETS_FILE 
profile_encrypt 

~/.secrets.shが含まれています:

+0

...あなたの秘密ファイルの復号化に使用した鍵はどこに保存されますか? – larsks

+1

暗号化/復号化には、パスフレーズ付きのGPGキーを使用します。パスフレーズはセッションごとに1回入力されます(gnome-keyringまたはgpg-agentを使用)。あなたがGithubでSSH鍵を使うときと同じように。 –

答えて

1

sh機能のカップルとgpgを使用して、それ作っ.profile解読、輸出変数で、この関数を含む

export API_KEY=<SECRET API KEY> 

をし、それらは毎回端末であるバック暗号化ロードされる。

+0

私はこの機能を使ってシェルプラグインを作成しました:https://github.com/gmatheu/shell-plugins/blob/master/README.md#profile-secrets –

関連する問題