11

The first time ssh-copy-id it will ask

# ssh-copy-id -i .ssh/id_dsa.pub [email protected] The authenticity of host 'example.com (xxx.xxx.xxx.xxx)' can't be established. RSA key fingerprint is 39:fb:5e:70:30:33:2b:18:17:e9:4f:2f:91:b5:d2:21. Are you sure you want to continue connecting (yes/no)? 

Is it possible to script this, so the script just will answer yes?

1

4 Answers 4

10

If your ssh-copy-id doesn't support the StrictHostKeyChecking option, you can write a script that does:

  1. Run ssh-keyscan against the target server to get the public key
  2. Append that to the known_hosts file
  3. Run ssh-copy-id
13

SSH has an option to automatically add any host keys to the trusted hosts file:

ssh-copy-id -i .ssh/id_dsa.pub -o StrictHostKeyChecking=no [email protected] 

As an alternative, you could do the following:

echo "yes \n" | ssh-copy-id -i .ssh/id_dsa.pub [email protected] 

Edit: since it appears these solutions don't work with ssh-copy-id, you could always create a ~/.ssh/config file with the following option in it:

StrictHostKeyChecking no 

This should work with all SSH connections, regardless if they are invoked through a script or not.

5
  • 1
    Sadly doesn't work, and ssh-copy-id doesn't have -o Commented Aug 30, 2012 at 13:17
  • Weird, it does report that switch when issuing ssh-copy-id -? Commented Aug 30, 2012 at 13:24
  • 1
    @sandra ssh-copy-id is a script. You can modify it to add -o StrictHostKeyChecking=no or disable that parameter in the ssh_config file. Commented Aug 30, 2012 at 13:24
  • Also, you don't need to specify the key location... ssh-copy-id servername works fine. Commented Aug 30, 2012 at 13:26
  • sudo sed -i.bak 's/ssh \$/ssh -o StrictHostKeyChecking=no \$/' $(which ssh-copy-id). Commented Aug 30, 2012 at 16:47
2

This was from a decade ago, but is still a relevant question and doesn't have a functional answer:

ssh-copy-id -i .ssh/id_dsa.pub [email protected] <<< yes 

You will still need to enter your password.

Just in case someone else stumbles across this old post.

-1

Try this:

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] -y 

it does not add the host keys to the known_hosts file but lets you copy (or append) the public key to the authorized_keys that you want to, if that is the sole purpose here.

1
  • 1
    there is no -y option Commented Oct 5, 2019 at 9:25

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.