Многострочный ключ pem в .env недоступен в приложении Flask / Paramiko через docker-compose - PullRequest
0 голосов
/ 16 ноября 2018

Я использую Paramiko в своем приложении Flask для запуска некоторых команд на внешнем сервере. Я использую docker-compose для локальной разработки, а моя постановка / производство использует kubernetes.

Я хочу сохранить мой ключ pem как переменную окружения, но я пытаюсь заставить его работать. Я пробовал различные варианты следующих безрезультатно. Я также читал на форумах, что другие нашли ту же проблему, но не ясно, решали ли (или как) ее. Это то, что я до сих пор ...

Я храню мой ключ pem в файле .env:

PEM_KEY="-----BEGIN RSA PRIVATE KEY-----
I CXYEpAIBAAKCAQEAj7sLQn55KXRyfT0h/f5E1lXX9fJ1NbBA7zcKkCCIv2uXY0fWZbInQoAT1DMk
2OBi1PrJJcz6E5t1u2gwKomz612d24xQeqiqDN1eEX4ab2EFzTjxw57NqpIJsrIY6H68mNn3Tp0i
....
-----END RSA PRIVATE KEY-----"

Выше показан ключ, заключенный в двойные кавычки, но я пробовал другие варианты, включая одинарные, без кавычек, добавление \ n между строками и т. Д. Безрезультатно.

Мой docker-compose выглядит так:

---
version: '2'
services:   
    web:        
        build:
            context: .
            dockerfile: Dockerfile.web
        restart: always
        environment:  
            - PEM_KEY=${PEM_KEY}

Чтобы проверить, я печатаю свой ключ к экрану, но независимо от того, что я пытаюсь, я либо получаю частичный ключ, например:

-----BEGIN RSA PRIVATE KEY-----

... или я не могу удалить символы новой строки:

-----BEGIN RSA PRIVATE KEY-----\nICXYEpAIBAAKCAQEAj7sLQn55KXRyfT0h/f5E1lXX9fJ1NbBA7zcKkCCIv2uXY0fWZbInQoAT1DMk\n2OBi1PrJJcz6E5t1u2gwKomz612d24xQeqiqDN1eEX4ab2EFzTjxw57NqpIJsrIY6H68mNn3Tp0i\n....\n-----END RSA PRIVATE KEY-----

Буду очень признателен за любые предложения, как это исправить.

Заранее спасибо.

...