Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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?

share|improve this question
    
why not copy the individual files into a folder, zip and then send it across in one go? –  Jay Feb 11 '13 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 '13 at 8:26

2 Answers 2

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.

share|improve this answer

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

man ssh-add

and

man ssh-agent
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.