46

I have a public key in a server(host) that I want to transfer to another server(target).

The host server has a bunch of keys in .ssh/ folder, i want to copy just one of them to the target server (it's not id_rsa.pub, so lets call mykey.rsa.pub).

Also, the target server has the host server key (lets call hostkey.rsa.pub) in .ssh/authorized_keys, for passwordless ssh.

Is it possible to do something like this?

ssh-copy-id mykey.rsa.pub -i hostkey.rsa.pub user@target

2 Answers 2

61

You can pass ssh options with -o:

ssh-copy-id -i mykey.rsa.pub -o "IdentityFile hostkey.rsa" user@target 
3
  • 3
    Worked for me but I had to add -f before -i. Commented Mar 21, 2020 at 14:40
  • it really makes no sense that it tries to copy every single key by default. Commented Jul 1, 2021 at 13:40
  • with -f too. it says Number of key(s) added: 2, but i check server it really add 1 (what I expect) Commented Jun 21, 2024 at 7:34
19

Yes, it is possible something like

ssh-copy-id -f -i hostkey.rsa.pub user@target 

with latest version of ssh-copy-id. If you have some older, it might or might not work (with RHEL7 and older Fedora with SSH_COPY_ID_LEGACY=1 environment variable)

2
  • 1
    Also make sure the -i option is BEFORE user@target. -f might not be needed. Commented Sep 22, 2017 at 13:05
  • I think the OP wants to copy mykey.rsa.pub. They want to use hostkey.rsa.pub for the underlying ssh connection during the copy.... Commented Sep 13, 2022 at 11:31

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.