21

I try to transfer files from remote computer using ssh to my computer :

scp My_file.txt user_id@server:/Home

This should put My_file.txt in the home folder on my own computer, right? I get

scp/Home: permission denied

Also when I try: ...@server:/Desktop, in order to copy the files from the remote computer to my desktop.

What am I doing wrong?

  • If you want to copy the file to the home folder of 'user_id' use scp My_file.txt user_id@server: It copies to the users home folder. – Manula Waidyanatha Sep 12 '12 at 9:42

11 Answers 11

31

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've tried: "~/" for 'Home' now, and also "~/Desktop/. Both resulted in : My_file.txt 100% 0 0.0 KB/s 00:00, and I cannot see the files in my folders. What am I still doing wrong ? Thanks a lot! – Erez Sep 12 '12 at 9:31
  • On your second command example, the ~ should be protected from evaluation so as to be evaluated on the remote host: \~ for example. – dan Mar 19 '15 at 12:21
  • 1
    In order to thank you, i registered to the website. Thanks you saved my day:) – Ad Infinitum Jan 17 '17 at 22:12
6

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.

  • 1
    In this case it's because he's trying to write to /Home and not being root, he doesn't have write access outside ~/ – Shadur Oct 9 '12 at 9:25
  • You do help me. – longdeqidao Mar 25 at 7:31
4

this seems to be like permissioning issue

The file might not have read permissions as it is delivered to the destination server as the source account.

you need to ensure the file at the source has required permissions especially read permission

-rw-r--r--

chmod 744

then scp the file to destination. This will be resolved

  • 3
    -rw-r--r-- is 644, not 744.  Setting executable permission on a file that is not actually executable can cause problems. – G-Man Says 'Reinstate Monica' Dec 10 '15 at 0:11
2

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)
1

You have the arguments to scp reversed. It's source first, then destination, like cp. man scp for more details.

1

Permisssion Denied means you are not the root of the server. You just hold an account there. So in that case you need to do this:

sudo scp -r /path2yourFolder/ username@server_Ip:/home/username

This will copy to your home directory on server.

This will also work:

scp -r /path2yourFolder/ username@server_Ip:~/
0

Install a windows tool "mRemoteG" from www.mremoteng.org/

Create your SSH connection to the desired box.

Click on the "Transfer File" menu.

It will allow to transfer file easily from Windows to Linux.

thanks.

0

Amazon Linux AMI

Be sure that you need to set absolute server path, from home in current case:

scp file.txt SSH-ALIAS:/home/YOUR_USER/
0

The same permissions apply on both sides of the scp. You will get this error if the user lacks permission to write to the destination. The symptoms appear to implicate the source, however in my case the destination was created by root and lacked write permission for the intended user account.

0

In my case, I also tried to grant all the permission with -R to the folder but still got the error about permission.

I had to remove "/" before the path of the target server and folder. The reason is because Downloads is the first folder I can list out after I ssh to the server, for example: ssh tiennsloit@13.76.91.2

This works:

sudo scp -rp /Users/macintosh.vn/Downloads/bbhs_20190301.zip tiennsloit@13.76.91.2:Downloads

This was not working:

sudo scp -rp /Users/macintosh.vn/Downloads/bbhs_20190301.zip tiennsloit@13.76.91.2:/Downloads

-3

before using scp command, make sure that you give permissions read, write and execute to everyone outside. "chmod 777 file_name"

  • you can copy file that are not 777 – Archemar Mar 19 '15 at 10:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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