Transfer files using scp: permission denied

Your commands are trying to put the new Document to the root (/) of your machine. What you want to do is to transfer them to your home directory (since you have no permissions to write to /). If path to your home is something like /home/erez try the following:

scp My_file.txt user_id@server:/home/erez/

You can substitute the path to your home directory with the shortcut ~/, so the following will have the same effect:

scp My_file.txt user_id@server:~/

You can even leave out the path altogether on the remote side; this means your home directory.

scp My_file.txt user_id@server:

That is, to copy the file to your desktop you might want to transfer it to /home/erez/Desktop/:

scp My_file.txt user_id@server:/home/erez/Desktop/

or using the shortcut:

scp My_file.txt user_id@server:~/Desktop/

or using a relative path on the remote side, which is interpreted relative to your home directory:

scp My_file.txt user_id@server:Desktop/

Edit:

As @ckhan already mentioned, you also have to swap the arguments, it has to be

scp FROM TO

So if you want to copy the file My_file.txt from the server user_id@server to your desktop you should try the following:

scp user_id@server:/path/to/My_file.txt ~/Desktop/

If the file My_file.txt is located in your home directory on the server you may again use the shortcut:

scp user_id@server:~/My_file.txt ~/Desktop/

I came here for "Transfer files using scp: permission denied" because I had the same error.

In my case, the file downloaded with scp would have overwritten a file owned by root, and I wasn't root. In short, check the ownership of the file being overwritten.


What fixed the "permission denied" for me was, on the remote server, change the folder ownership to root: (This can happen when you are sending a file to a non-root user, and the directory is owned by root!) On the remote machine (copying dest.):

sudo chown (your username) (remote folder)

Also to be sure, enable all permissions on the remote folder: (Not always necessary):

sudo chmod 777 (remote folder)