Non-interactive scp

Richard Dorman picture Richard Dorman · Sep 7, 2009 · Viewed 10k times · Source

I'm creating a bash script to create new EC2 instances and then upload a file once the instance is created. I'm using scp to upload the file, however, since this is the first time I'm connecting to the instance the script is prompted with "Are you sure you want to continue connecting (yes/no)?" since the authenticity of the host is not known. The script needs to run non-interactively.

Is it possible to avoid the prompt (there doesn't seem to be an obvious command line option). If not is there an alternative method or command I can use to upload the file?

Answer

Michiel Buddingh picture Michiel Buddingh · Sep 7, 2009

You can set the option StrictHostKeyChecking to no in ~/.ssh/config. See ssh_config(5)

This can also be done from the command line: scp -i id -o stricthostkeychecking=no source.txt user@host:/path/

Where id is a private key where the corresponding public key resides in the authorized_keys file on the server