【发布时间】:2019-06-25 23:25:01
【问题描述】:
我一直在尝试通过 ssh 从要构建的 docker 映像内的远程服务器(不是 gihub)复制文件,但我无法连接到主机。这是 Dockerfile 直到关键点:
FROM r-base:latest
### Install libs
RUN apt-get update && apt-get install -y \
sudo \
gdebi-core \
pandoc \
pandoc-citeproc \
openssh-server \
openssh-client \
libcurl4-gnutls-dev \
libcairo2-dev \
libxt-dev \
xtail \
wget \
libssl-dev \
libxml2 \
libxml2-dev \
libv8-dev \
curl \
gnupg \
git
COPY ./setup setup
RUN mv setup/.ssh ~/.ssh
RUN touch ~/.ssh/known_hosts
RUN chmod -R 400 ~/.ssh
RUN ssh-agent sh -c 'ssh-add /root/.ssh/id_rsa'
#RUN eval "$(ssh-agent -s)"
#RUN ssh-add -K ~/.ssh/id_rsa #This is commented out as it causes an error
RUN ssh-keyscan hostname > ~/.ssh/known_host
RUN ssh-keygen -R hostname
## THIS IS THE COMMAND WE NEED TO RUN...
RUN scp -r user@hostname:/path/to/folder ./
文件夹的所有者是user。 id_rsa.pub 被添加到主机上用户user 的authorized_keys 文件中,并在那里重新启动了ssh。但是我得到一个失败的身份验证错误。我尝试使用我的个人 id_rsa,它可以从命令行工作,但它在 docker 内部也失败了。这是一个 docker 问题,可以解决吗?
【问题讨论】:
-
您是否管理过从容器内部运行 scp 命令?
-
@gCoh 我可以在容器内运行它,但系统会提示我输入“是”以获取主机真实性和用户密码。