9

我的 docker 文件中有以下内容:

RUN sudo apt-get install sshpass -y
RUN sshpass -p userPassword scp -r user@server:~/data/* ./

但是当我尝试构建我的图像时,它失败了:

Exception caught: The command '/bin/sh -c sshpass -p userPassword scp -r user@server:~/data/* ./' returned a non-zero code: 6 -> [Help 1]

但是,如果我删除这些行,构建映像,ssh 到容器上并从 bash 手动运行命令,它会完美运行。

谁能告诉我如何解决这个问题?

4

1 回答 1

12

退出代码6表示“主机公钥未知。sshpass 退出而不确认新密钥。”

因此,您要么在此之前使用主机的指纹进行填充,要么通过将选项添加到 scp 来~/.ssh/known_hosts忽略对主机公钥的检查。StrictHostKeyChecking=no

更新后的行如下所示:

RUN sshpass -p userPassword scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -r user@server:~/data/* ./
于 2015-11-27T16:46:57.220 回答