The ssh-copy-id is a shell script that uses ssh command to log into a remote machine using a login password to install your public key in a remote machineâ€™s authorized_keys. The script also secure the remote user’s home, ~/.ssh, and ~/.ssh/autho-rized_keys files by changing the permissions.
The syntax is as follows to install ssh-keys:
ssh-copy-id user@server-name-here ssh-copy-id -i /path/to/identity-file user@server-name-here
Install key for server42, enter:
Install key for for OpenSSH server listen on IP 192.168.1.146 port 22 (default), enter:
/usr/local/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/local/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys [email protected]'s password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh [email protected]'" and check to make sure that only the key(s) you wanted were added.
Using ssh-copy-id with an SSH server listening on a different port # 2222
If your remote server listen on a different port than 22, you need to use the following syntax:
## old syntax. only valid for older ssh-copy-id (see below for new syntax) ## ssh-copy-id '-p PORT-NUMBER-HERE [email protected]' ssh-copy-id '-p 2222 [email protected]' ssh-copy-id '-p 2222 [email protected]'
## new syntax ## ssh-copy-id -p 2222 firstname.lastname@example.org
Now try logging into the machine, with:
ssh -p 2222 email@example.com
Welcome to Ubuntu 14.04.2 LTS (GNU/Linux 3.13.0-46-generic x86_64) * Documentation: https://help.ubuntu.com/ Last login: Sat Mar 7 17:55:48 2015 from viveks-macbook-pro.local
See ssh-copy-id(1) for more info.