SSH SCP Local file to Remote in Terminal Mac Os X

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.xxxx 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 user@xx.x.x.xx/var/www/

This asks me to type in my local password. Afterwards returns cp: user@xx.xxxx/var/www: Not a directory

sudo scp /Users/myname/magento.tar.gz user@xx.x.x.xx/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.


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

scp magento.tar.gz user@xx.x.x.xx:/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.xxxx 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 user@xx.x.x.xx:

Then SSH and move the file:

ssh user@xx.x.x.xx
sudo mv magento.tar.gz /var/www

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 remoteUser@some_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 remoteUser@some_address
sudo mv /home/remoteUser/Documents/file /var/www

Watch that your file name doesn't have : in them either. I found that I had to mv blah-07-08-17-02:69.txt no_colons.txt and then scp no-colons.txt server: then don't forget to mv back on the server. Just in case this was an issue.

链接地址: http://www.djcxy.com/p/25722.html

上一篇: 如何在Linux中的scp复制期间转义路径中的空间?

下一篇: SSH终端Mac OS X中的本地文件到远程终端