ssh 要求输入没有密码的密码

ssh 要求输入没有密码的密码

我正在尝试使用此 docker 文件构建 docker 映像,并且需要从 bitbucket 克隆一些私有存储库。

FROM ubuntu

RUN chsh -s /bin/bash



RUN apt-get update
RUN apt-get install -y git python-pip

ADD private_key_for_deployment /root/.ssh/id_rsa
RUN chmod 600 /root/.ssh/id_rsa
RUN echo "StrictHostKeyChecking no" >> /root/.ssh/config
RUN echo >> /root/.ssh/config
RUN echo "Host bitbucket.org" >> /root/.ssh/config

RUN cat /root/.ssh/id_rsa
RUN mkdir -p /usr/src/app/
COPY requirements.txt /usr/src/app/
RUN cat /root/.ssh/config
WORKDIR /usr/src/app/
RUN  echo "IdentityFile ~/.ssh/id_rsa" >> /root/.ssh/config
RUN eval "$(ssh-agent)" && \
    ssh-add && \
    ssh-add -l \
    pip install -U -r requirements.txt
COPY . /usr/src/app

WORKDIR /usr/src/app/data_service/
CMD ["python" "data_service.py"]

我也尝试过没有ssh-add -l

我需要说这个密钥如果在 docker 容器内完美工作。我已经在这个容器内生成了密钥,启动了 ssh 代理并添加了身份,我可以在那里克隆存储库。

编辑1

构建 docker 镜像时会发生这种情况:

步骤 15 : RUN eval "$(ssh-agent)" && ssh-add && pip install -U -rrequirements.txt
---> 在 2b9a79fa7cf3
代理 pid 8中运行
输入 /root/.ssh/id_rsa 的密码:2015/ 07/02 22:26:46 命令 [/bin/sh -c eval "$(ssh-agent)" && ssh-add && pip install -U -rrequirements.txt] 返回一个非零代码:1

答案1

您将私钥指定为/root/.ssh/id_rsa。该脚本是否以 root 身份运行?在这里,"IdentityFile ~/.ssh/id_rsa" >> /root/.ssh/config您告诉它在当前用户的主目录下查找而不是专门查找/root/.ssh/id_rsa。它的行为就好像您传递了错误的密钥一样。

我不使用 docker,但也许这可能与您的问题有关。

相关内容