我正在创建一个 nodejs 应用程序,它将与 Git 存储库集成并执行推送、 pull 提交等操作。我正在将应用程序移动到 Docker。
但是我找不到在运行时将 ssh key 放入 docker 镜像的方法。出于安全原因,我想避免在构建时在 docker 镜像中复制 ssh key 。
我尝试在运行时将 ssh key 作为环境变量传递,例如:
docker run -i -t -e KEY="sshkey" imagename
并在 node.js 中手动创建 ssh 文件夹和 ssh key
mkdirSync('/root/.ssh/', (err) => {
writeFileSync('/root/.ssh/id_rsa.pub', sshKey, (err) => {
})
})
但是,这似乎不起作用,尝试克隆存储库时仍然出现权限错误。
最佳答案
以下人为设计的示例演示了如何从容器中读取主机上的私钥。
docker run -it --rm -v ~/.ssh/id_rsa:/root/.ssh/id_rsa:ro ubuntu cat /root/.ssh/id_rsa
这应该让以 root 身份运行的进程使用您的凭据进行身份验证。
关于node.js - 在运行时在 docker 容器中 pull ssh key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39272557/