2016-08-31 7 views
0

Я хочу включить environment variable с секретным ключом Api во время инициализации оболочки. Но я не хочу, чтобы переменная среды отображалась в текстовом файле.Загрузка секретного содержимого в .profile при инициализации bash/zsh

Итак, мне было интересно, есть ли встроенный механизм или скрипт для этого.

Я думал о зашифрованном git-хранилище, используя git-crypt. И когда инициализация (в .profile) расшифровывает его, отправьте его, а затем зашифруйте, чтобы сделать его нечитаемым для других пользователей.

+0

Итак ... где вы будете хранить ключ, используемый для дешифрования секретного файла? – larsks

+1

Шифрование/дешифрование будут выполняться с использованием ключей GPG с парольной фразой. Кодовая фраза будет вводиться один раз за сеанс (с использованием gnome-keyring или gpg-agent). Как и при использовании SSH-ключей с Github. –

ответ

1

Пару sh функций и использование gpg сделал это:

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 содержит:

export API_KEY=<SECRET API KEY> 

В том числе этой функции на .profile расшифровывает, экспорт переменных и шифрует их обратно каждый раз, когда терминал загружен.

+0

Я только что создал плагин оболочки с этой функцией: https://github.com/gmatheu/shell-plugins/blob/master/README.md#profile-secrets –

 Смежные вопросы

  • Нет связанных вопросов^_^