SSH SCP Local file to Remote in Terminal Mac Os X

91

I am attempting to copy a local file 'magento.tar.gz' from my local machine to a remote server using SSH through a VPN. This is connecting to the Virtual Machine's Internal IP which I've used as xx.x.x.xx here.

I have full 'sudo' access on the SSH account so there shouldn't be any problem copying across. I have tried the following:

I have tried the following (the magento.tar.gz file is already in the local root dir)

sudo scp magento.tar.gz [email protected]/var/www/

This asks me to type in my local password. Afterwards returns cp: [email protected]/var/www: Not a directory

sudo scp /Users/myname/magento.tar.gz [email protected]/var/www/

Returns the same.

Do I need to include a SSH in there anywhere?

Do I need to connect via SSH to the site first?

Side note: I've managed to connect via SSH to the server, browse to the directory and make a folder and delete it using sudo mkdir etc so I definitely have permissions.

This question is tagged with command-line ssh terminal scp

~ Asked on 2012-08-06 03:23:21

The Best Answer is


204

At first, you need to add : after the IP address to indicate the path is following:

scp magento.tar.gz [email protected]:/var/www

I don't think you need to sudo the scp. In this case it doesn't affect the remote machine, only the local command.

Then if your user@xx.x.x.xx doesn't have write access to /var/www then you need to do it in 2 times:

Copy to remote server in your home folder (: represents your remote home folder, use :subfolder/ if needed, or :/home/user/ for full path):

scp magento.tar.gz [email protected]:

Then SSH and move the file:

ssh [email protected]
sudo mv magento.tar.gz /var/www

~ Answered on 2012-08-06 03:26:06


19

Just to clarify the answer given by JScoobyCed, the scp command cannot copy files to directories that require administrative permission. However, you can use the scp command to copy to directories that belong to the remote user.

So, to copy to a directory that requires root privileges, you must first copy that file to a directory belonging to the remote user using the scp command. Next, you must login to the remote account using ssh. Once logged in, you can then move the file to the directory of your choosing by using the sudo mv command. In short, the commands to use are as follows:

Using scp, copy file to a directory in the remote user's account, for example the Documents directory:

scp /path/to/your/local/file [email protected]_address:/home/remoteUser/Documents

Next, login to the remote user's account using ssh and then move the file to a restricted directory using sudo:

ssh [email protected]_address
sudo mv /home/remoteUser/Documents/file /var/www

~ Answered on 2014-12-29 17:21:32


Most Viewed Questions: