Best practices state that you should run ssh on an non-standard port. Unfortunately some programs use port 22 by default and it isn’t obvious what the switch is to change this port.

One of these programs is the eminently useful rsync. It states how to do this in the man file, but it is hidden and non-obvious. You simply add the option via the -e command to pass ssh options. -e is the shell rsync uses to connect to a remote host.

Using rsync on an alternate ssh port

rsync -avz -e "ssh -p $port" username@ip:/path/to/files/ /local/files/

Using rsync with an openssh key

rsync -avz -e "ssh -i /path/to/private/key" username@ip:/path/to/files/ /local/files/

Or with both an alternate port and openssh key:

rsync -avz -e "ssh -i /path/to/private/key -p $port" username@ip:/path/to/files/ /local/files/

This can be used in a bash script if you set the $port variable or directly on the command line by using the set port instead of $port.

Here are some other useful pages regarding using rsync. If you don’t use rsync for remote file transfer – I highly recommend it. The transfer speed is much faster than scp over ssh.

4 comments
  1.  
    I found your blog ( ) and interested in paid post. Let me know if you are interested then I will give you more details.

    I can offer you best to make it worth your time.

    Regards

Comments are closed.

You May Also Like

Linux: Mount ISO Image as directory

Here is a handy little shortcut I recently figured out (it took…

Remote Desktop from Windows XP to Windows Server 2008 or Windows Vista

The Remote Desktop connection settings for Windows Server 2008, and I believe…

Postfix as a proxy to Exchange server

More and more people seem to be using an open source mail…

Problem installing PECL PHP extensions while /tmp is secured

I recently tried to install a PHP PECL extension on a server…