ssh scp to copy file to remote server port 21

I am trying to copy file from my server to another so I am using the following command:

scp root@myhost /home/direc/file.tar username@secondhost:/home/dir

I am getting the error:

ssh: connect to host secondhost port 22 connection timed out

I know it might be because port 22 is not open on second host

so How do I transfer by specifying port 21 on my second host


Solution 1:

Try

scp -P 21 root@myhost /home/direc/file.tar username@secondhost:/home/dir

Where -P stands for port number.

Solution 2:

Two flaws I see in your attempt and the response.

1) scp is a secure shell (ssh) utility for securely copying files between hosts. It uses ssh for data transfer and uses the same authentication and provides the same security as ssh (see scp manpage). By default, ssh uses port 22. So unless you changed the default port number for ssh on the destination server to 21, or you have not installed and started the ssh server (sshd) on the receiving server, you can not use scp to copy files.

2) The proper command line from your example should be:

scp -P '*port running ssh on destination server*' /home/direc/file.tar username@remotehost:/home/dir

The first root@myhost is not necessary and will in fact attempt to copy a file named root@myhost (that most likely does not exist) and file.tar to the destination server. You most likely will receive the message:

root@myhost: No such file or directory during the copy.