21

How do I copy files from my local to some remote server which hosts ssh on port other than default (22).

I usually connect to the server using

ssh [email protected] -p 2000

Now I need to copy files with scp

user@localbox:~$ scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_localbox.pub -p 2000

But this does not work.

Prabesh Shrestha
  • 1,075
  • 2
  • 11
  • 11

3 Answers3

48

scp --help or man scp would have told you the option was -P port. You also need to declare this before the file arguments:

scp -P 2000 -i ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_localbox.pub

I also wouldn't trust ~-relative links. Use full paths if you can.

But if you're copying IDs, ssh-copy-id also has an option to provide SSH connection options:

ssh-copy-id -i ~/.ssh/id_rsa.pub '-p 2000 [email protected]'
Oli
  • 289,791
  • 117
  • 680
  • 835
4

use a capital P

(it's in the man page...)

4

You can create file ~/.ssh/config and put relevant information for the remote host in there:

Host remotehost.com
Port 2000
User username

See man page for ssh_config.

This allows you to then run ssh as:

ssh remotehost.com

and scp as:

scp important_file remotehost.com: