相关疑难解决方法(0)

在 docker-compose 的 .env 文件中使用多行值

我有一个安装程序,可以将一些值输出到 .env 文件中,供 docker-compose 使用。到目前为止,所有这些都有效,但似乎无法使用的 SSH 密钥除外。

到目前为止,我已经尝试使用正确格式的私钥并用\n. 但是,这会进一步中断工作流程,并且不会在容器内使用 printenv 作为所需的多行变量出现。

docker-compose.yml

myservice:
  build: .
  environment:
    - SSH_KEY
    - SINGLE_LINE_VALUE
Run Code Online (Sandbox Code Playgroud)

.env(忽略明显损坏的 sshkey)

SINGLE_LINE_VALUE=I Load just fine
SSH_KEY="---------------
ABCDEFGH
--------------------
"
Run Code Online (Sandbox Code Playgroud)

到容器运行时,SSH_KEY 的环境值只是“---------------

非常感谢任何想法。

environment-variables docker docker-compose

21
推荐指数
2
解决办法
1万
查看次数

将 SSH 私钥存储在 GitLab 存储库变量中

使用 GitLab CI,我想将生产代码推送到远程网络主机。

为了使用 SSH 连接,我将密钥对的私钥存储在我的 GitLab 存储库的变量中。我还将公钥复制到服务器的授权密钥中。这是我的(一部分).gitlab-ci.yml

image: ubuntu

before_script:
  # Setup SSH credentials and known host
  - which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )
  - mkdir -p ~/.ssh
  - echo "$SSH_PRIVATE" | tr -d '\r' > ~/.ssh/id_rsa
  - chmod 700 ~/.ssh/id_rsa
  - eval "$(ssh-agent -s)"
  - ssh-add ~/.ssh/id_rsa
  - echo "$SSH_KNOWN_HOSTS"
  - echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts
  - chmod 644 ~/.ssh/known_hosts
Run Code Online (Sandbox Code Playgroud)

这个方法可行,但我质疑它的安全性。这样我的私钥安全吗?我还能如何实现我正在寻找的结果?

编辑:我特别质疑这种方法在生产环境中的安全性。

ssh gitlab

12
推荐指数
1
解决办法
2万
查看次数

如何为AWS Elastic Beans设置多行RSA私钥环境变量

我正在使用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 Key格式错误.

然而,与Heroku不同,AWS EB不接受多行输入(见下文),因此我必须使用\n创建新行.

在此输入图像描述

我尝试了几种不同的风格,但没有一个似乎\n正确插值,我总是得到同样的错误.

我已经尝试过\n和每行的结束,然后\\n也尝试用双引号\"来包装密钥,但我仍然得到同样的错误.

如何在AWS Elastic Beanstalk中正确设置多行环境变量?

rsa ruby-on-rails amazon-web-services amazon-elastic-beanstalk

8
推荐指数
2
解决办法
2856
查看次数

如何签署 JWT?

我正在尝试保护 Sinatra API。

我正在ruby-jwt用来创建 JWT,但我不知道用什么来签名。

我正在尝试使用用户的 BCrypt password_digest,但每次password_digest调用它时都会发生变化,使我去验证时签名无效。

ruby authentication oauth sinatra jwt

5
推荐指数
1
解决办法
1406
查看次数

从变量添加SSH密钥

我在Docker容器中有一个bash脚本,需要通过ssh访问远程服务器.我在变量中有SSH密钥.如何将其添加到SSH?

ssh bash ssh-keys

5
推荐指数
3
解决办法
7128
查看次数