Docker RUN fails with "returned a non-zero code: 6"

James picture James · Nov 27, 2015 · Viewed 9.5k times · Source

I have the following in my docker file:

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

But when I try and build my image it fails with:

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

However, if I remove these lines, build the image, ssh onto the container and manually run the command from bash it works perfectly.

Can anyone tell me how to get around this?

Answer

mishunika picture mishunika · Nov 27, 2015

The exit code 6 means that "Host public key is unknown. sshpass exits without confirming the new key."

So either you populate before that the ~/.ssh/known_hostswith the fingerprint of the host, or just ignore the check of the host public key by adding the StrictHostKeyChecking=no option to the scp.

The updated line would look like that:

RUN sshpass -p userPassword scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -r user@server:~/data/* ./