gpt4 book ai didi

Docker secret 和 RSA key

转载 作者:行者123 更新时间:2023-12-02 13:50:13 36 4
gpt4 key购买 nike

我有一个 Docker 群,我想在服务中使用 secret RSA key 通过 SSH 连接到另一个容器。

我的安全策略是所有 secret (密码、 key 等)都存储在与目标服务器(Swarm)不同的机器上。

实际上(我不喜欢这样),在我的 Dockerfile 中我创建了一个临时目录 /run/secrets:

mkdir -p /run/secrets

然后我创建假的 id_rsaid_rsa.pub 文件:

touch /run/secrets/id_rsa
touch /run/secrets/id_rsa.pub

现在我创建一个符号链接(symbolic link):

ln -s /run/secrets/id_rsa /root/.ssh/id_rsa
ln -s /run/secrets/id_rsa.pub /root/.ssh/id_rsa.pub

我这样做是因为我没有找到一种方法来复制我的 docker-entrypoint.sh 中的 secret :在入口点我不是 root,所以我无法复制/root 目录。

所以,我已经在使用 Docker secret ,但这里的问题是容器内的 secret 是只读的。这会影响 SSH 的使用:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0444 for '/root/.ssh/id_rsa' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.

我无法修改我的 id_rsa 文件的权限,因为它是只读的。

是否有解决方法或更好的方法?

谢谢

编辑 1:

我正在尝试更改构建 Docker 镜像的方式,以便将 key 复制到 /root/.ssh 目录中。

最佳答案

考虑使用撰写文件创建一个堆栈。这使您可以选择更改 secret 的文件权限。

version: "3.1"
services:
redis:
image: redis:latest
deploy:
replicas: 1
secrets:
- source: my_secret
target: redis_secret
uid: '103'
gid: '103'
mode: 0440
secrets:
my_secret:
file: ./my_secret.txt
my_other_secret:
external: true

可在此处找到更多信息:https://docs.docker.com/compose/compose-file/#long-syntax-2

关于Docker secret 和 RSA key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47284967/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com