【问题标题】:upload the ssh folder with keys to docker将带有密钥的 ssh 文件夹上传到 docker
【发布时间】:2020-08-26 05:49:11
【问题描述】:

我需要将 ssh 文件夹与 docker 中的键一起扔掉。

Dockerfile:

       FROM python:3.6-alpine3.12
       RUN mkdir /code && mkdir /data
       ADD . /code
       WORKDIR /code
       RUN pip3 install -r requirement &&  apk add git
       RUN mkdir /root/.ssh && -v ~/.ssh:/root/.ssh
       RUN apk add -y wget

构建时出错:

/bin/sh: illegal option -
The command '/bin/sh -c -v ~/.ssh:/root/.ssh returned a non-zero code: 2

【问题讨论】:

标签: docker ssh


【解决方案1】:

shell 无法识别命令-v ~/.ssh:/root/.ssh

试试这个:

FROM python:3.6-alpine3.12
ADD . /code
WORKDIR /code
RUN pip3 install -r requirement && \ 
        apk add -y git wget && \
        mkdir /data
        
COPY $HOME/.ssh /root/.ssh 

PS:我为你添加了一些 Dockerfile 的优化

编辑:

  • 除非您真的知道自己在做什么,否则将敏感数据复制到容器中并不是一个好主意。
  • 如果您的应用程序需要连接到您拥有的远程服务器,最好专门为其生成新密钥并将其分发到您的服务器上(公钥)。

【讨论】:

  • 安全方面的不良做法(根目录下的 .ssh 文件夹)。这允许不受限制的容器管理,这意味着您可以执行诸如安装系统包、编辑配置文件、绑定特权端口等操作,
  • 我的回答主要是针对“与技术 docker 相关的方面”。即再次从 dockerfile 的角度解释错误显示的原因以及如何修复它。在我的回答中,.ssh 将被复制到容器的根目录中,并使容器能够访问用户的 ssh 配置和密钥(在大多数情况下都是加密的)。我并没有说这是一个好还是坏的做法,但它肯定不常见,尤其是在生产环境中。
  • 还有 link 你从那里复制了你的评论,对 ssh 只字不提。所以没有必要投反对票。
猜你喜欢
  • 1970-01-01
  • 2016-05-10
  • 2012-08-16
  • 2017-09-11
  • 2021-04-07
  • 2022-11-06
  • 2020-12-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多