Hack 73. Use ssh-copy-id along with ssh-agent

    1. jsmith@local-host$ ssh-agent $SHELL
    2.  
    3. jsmith@local-host$ ssh-add -L
    4. The agent has no identities.
    5. jsmith@local-host$ ssh-add
    6. Identity added: /home/jsmith/.ssh/id_rsa (/home/jsmith/.ssh/id_rsa)
    7.  
    8. jsmith@local-host$ ssh-add -L
    9. ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsJIEILxftj8aSxMa3d8t6JvM79D
    10. aHrtPhTYpq7kIEMUNzApnyxsHpH1tQ/Ow== /home/jsmith/.ssh/id_rsa
    11. jsmith@local-host$ ssh-copy-id -i remote-host
    12. jsmith@remote-hosts password:
    13. Now try logging into the machine, with ssh remote-host’”, and check in: .ssh/authorized_keys to make sure we havent added extra keys that you werent expecting.
    14. [Note: This has added the key displayed by ssh-add -L]

    Three Minor Annoyances of ssh-copy-id

    • Default public key: ssh-copy-id uses ~/.ssh/identity.pub as the default public key file (i.e when no value is passed to option -i). Instead, I wish it uses id_dsa.pub, or id_rsa.pub, or identity.pub as default keys. i.e If any one of them exist, it should copy that to the remote-host. If two or three of them exist, it should copy identity.pub as default.
    • The agent has no identities: When the ssh-agent is running and the ssh-add -L returns “The agent has no identities” (i.e no keys are added to the ssh-agent), the ssh-copy-id will still copy the message “The agent has no identities” to the remote-host’s authorized_keys entry.