【发布时间】:2017-08-22 07:34:50
【问题描述】:
我正在使用 Elastic Beanstalk 将 Ruby on Rails 应用程序部署到 AWS,并且必须将私钥设置为环境变量
例如
-----BEGIN RSA PRIVATE KEY-----
SpvpksXQIBA65ICOgQxV2TvMIICAiMeV9prhdJSKjjsk2
tYdz8lhn/ibROQW71utuHLAyHGMBxz3kIaaIq1kjdkkk
tYdz8lhn/ibROQW71utuHLAyHGMBxz3kIaaIq1kjdkkk
tYdz8lhn/ibROQW71utuHLAyHGMBxz3kIaaIq1kjdkkk
tYdz8lhn/ibROQW71utuHLAyHGMBxz3kIaaIq1kjdkkk
-----END RSA PRIVATE KEY-----
但是在部署应用程序时这似乎不起作用,因为它总是失败并显示
OpenSSL::PKey::RSAError: 既不是 PUB 密钥也不是 PRIV 密钥:嵌套 asn1 错误
我认为这是因为 RSA 密钥格式错误。
但与 Heroku 不同的是,AWS EB 不接受多行输入(见下文),因此我必须使用 \n 来创建新行。
我尝试了几种不同的样式,但似乎都没有正确插入 \n,而且我总是遇到同样的错误。
我尝试使用\n 和每行的结尾,然后使用\\n 并尝试使用双引号\" 来包装密钥,但我仍然遇到同样的错误。
如何在 AWS Elastic Beanstalk 中正确设置多行环境变量?
【问题讨论】:
-
你的钥匙是用来做什么的?如果它应该是 SSH 密钥,那么您需要使用 OpenSSH 格式。
-
密钥不适用于 SSH。它用于初始化名为
cloudfront-signer的 gem -
这与您将密钥导出到环境中的方式有关。用 $'...' 括起来。请参阅下面的 nethsix 的答案。
标签: ruby-on-rails amazon-web-services rsa amazon-elastic-beanstalk