Ubuntu Terminal: How to ssh-copy-id When the SSH Port is not 21

For the most part, the default port for SSH access into a Linux machine is 21. However, many people change this default in the name of security, meaning that for most of our function usage, we simply need to use the -p port number switch when trying to access with that remote machine.

However, interestingly enough, the -p switch was never bundled with the useful ssh-copy-id function, meaning that should you try something like this:

ssh-copy-id -p221 -i ~/.ssh/id_rsa.pub username@host

you will get a reply back reading: Bad port ‘umask 077; test -d .ssh || mkdir .ssh ‘ cat >> .ssh/authorized_keys’.

Not exactly encouraging.

However, there is actually a simply way to fix this and use ssh-copy-id when interacting with a non-default port 21 machine. Simply enclose your port declaration together with the host name within quotation marks!

So the correct usage would now look like this:

ssh-copy-id -i ~/.ssh/id_rsa.pub ‘-p 221 username@host’

And damn it, it actually works! Nice.

Related Posts :

About Craig Lotter

Craig Lotter is an established web developer and application programmer, with strong creative urges (which keep bursting out at the most inopportune moments) and a seemingly insatiable need to love all things animated. Living in the beautiful coastal town of Gordon's Bay in South Africa, he games, develops, takes in animated fare, trains under the Funakoshi karate style and for the most part, simply enjoys life with his amazing wife and daughter. Oh, and he draws ever now and then too.
This entry was posted in Software & Websites, Tutorials and tagged , , , , , , . Bookmark the permalink.
  • Valid

    exactly what I was looking for.
    thanks for sharing!

  • E5z8652

    s/port 21/port22/g

    (port 21 is FTP)

  • Bård

    Helped me too. Thanks!

  • Eizt

    Thanks!

    Eizt by redeyesofangel.tistory.com