我在Flask应用程序中使用Paramiko在外部服务器上运行一些命令。我正在使用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-----
任何有关解决此问题的建议将不胜感激。
谢谢。