3

I need to copy several small files from a remote machine to a local one. I need to do this several times a day. Currently, I use a script that use scp to copy the files. However, this is slow as every time, I need to authenticate. Is there a way, beside mounting, to do one authentication and keep it alive until I finish the copy?

2
  • why not copy the individual files into a folder, zip and then send it across in one go?
    – Jay
    Feb 11, 2013 at 8:24
  • They are scatter over several folders on a computation cluster which I don't wish to run script on. I guess that this is an option con consider though.
    – Yotam
    Feb 11, 2013 at 8:26

2 Answers 2

1

Just use the ControlMaster feature of SSH. For this purpose I placed a global Option:

Host *
    ControlPath ~<user>/.ssh/ctrl-%r-%h-%p

In my .ssh/config. Of course you must replace <user> accordingly by your login name.

Whenever I want to setup an initial master connection I add '-M':

ssh -M <machine>

This creates a control socket with a filename specified above. Any subsequent call to ssh/scp targeting that <machine> will reuse the existing master connection. Dramatically speeding up the connection process because no further authentication is needed for the time the control (==master) connection exists. As a pleasant side effect you don't need to re-enter your pass-phrase once you give it for establishing the master connect.

0

You can use ssh-add to add private keys to your ssh authentication agent. See

man ssh-add

and

man ssh-agent

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .