gpt4 book ai didi

node.js - docker 镜像中的 ssh 凭证

转载 作者:太空宇宙 更新时间:2023-11-03 22:05:00 24 4
gpt4 key购买 nike

我有一个使用 docker-compose up 正常运行的应用程序。该应用程序使用 SSH 连接到我的主机并执行一些命令。现在,我通过在源代码中编写 SSH 凭据来提供它们,如下所示:

const pass = 'mypassword';
let username = 'myusername';
let host = '172.17.0.1';

我正在尝试关注 this指南,以便以更好的方式提供凭证。我无法理解这一行是如何工作的 privateKey: require('fs').readFileSync('/here/is/my/key') 它是一个相对路径,“key”是一个带有密码为纯文本?我应该从我的主机提供一些东西吗?如何在 Docker 容器中提供凭据?

最佳答案

一般来说,要将参数传递到容器中以供 Node.js 脚本读取,您可以:

对于 SSH 凭据等 secret 数据,我建议不要使用参数或环境变量,因为可以从各种来源检查它们。本文很好地解释了原因:https://diogomonica.com/2017/03/27/why-you-shouldnt-use-env-variables-for-secret-data/

相反,我会创建一个 Node.js 脚本可以读取的简单配置文件。

{
"username": "myuser",
"password": "pass",
"host": "172.17.0.1",
...
}

您可以将此文件放在主机系统上的一个目录中,并在启动容器时将其挂载到容器的 /myvolume 下:

docker run -it -v host-directory:/myvolume myimage

您的 Node.js 脚本现在可以读取 JSON 文件:

const configFilePath = "/myvolume/secret-config.json"
const config = JSON.parse(fs.readFileSync(configFilePath));

// now you can use config.host, config.username and config.password

作为旁注:我建议将远程 SSH 服务器设置为使用私钥/公钥身份验证,因为密码通常不太安全。设置私钥/公钥身份验证后,您可以将私钥文件放在同一卷中,并以类似的方式从 Node.js 脚本加载它:)

关于node.js - docker 镜像中的 ssh 凭证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56587406/

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