使用scp传输文件:权限被拒绝


23

我尝试将文件从使用的远程计算机传输ssh到我的计算机:

scp My_file.txt user_id@server:/Home

这应该将My_file.txt放在我自己的计算机上的主文件夹中,对吗?我懂了

scp / Home:权限被拒绝

另外,当我尝试:时...@server:/Desktop,为了将文件从远程计算机复制到我的桌面。

我究竟做错了什么?


1
如果要将文件复制到“ user_id”的主文件夹,请使用scp My_file.txt user_id@server:它将文件复制到用户的主文件夹。
Manula Waidyanatha 2012年

Answers:


36

您的命令试图将新文档放入计算机的根目录/)。您要做的是将它们转移到您的目录(因为您没有写权限/)。如果到家的路很像,请/home/erez尝试以下操作:

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

您可以使用快捷方式替换主目录的路径~/,因此以下效果相同:

scp My_file.txt user_id@server:~/

您甚至可以完全忽略远端的路径。这意味着您的主目录。

scp My_file.txt user_id@server:

也就是说,要将文件复制到桌面,您可能需要将其传输到/home/erez/Desktop/

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

或使用快捷方式:

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

或在相对端使用相对路径,该相对路径是相对于您的主目录解释的:

scp My_file.txt user_id@server:Desktop/

编辑:

正如@ckhan已经提到的,您还必须交换参数,它必须是

scp FROM TO

因此,如果要将文件My_file.txt从服务器复制user_id@server到桌面,则应尝试以下操作:

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

如果该文件My_file.txt位于服务器的主目录中,则可以再次使用快捷方式:

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

-我尝试过:“〜/”现在是“ Home”,也是“〜/ Desktop /。都导致:My_file.txt 100%0 0.0 KB / s 00:00,但是我看不到我的文件我仍然在做错什么?非常感谢!
Erez 2012年

在您的第二个命令示例中,~应保护免受评估,以便在远程主机上进行评估:\~例如。
2015年

1
为了感谢您,我注册了该网站。谢谢您挽救了我的一天:)
广告无限期

6

我来这里是“使用scp传输文件:权限被拒绝”,因为我有同样的错误。

就我而言,用scp下载的文件将覆盖root拥有的文件,而我不是root。简而言之,检查要覆盖的文件的所有权。


1
在这种情况下,这是因为他试图写入/Home而不是成为root用户,所以他没有外部写入权限~/
Shadur 2012年

你帮我
longdeqidao

4

这似乎是许可问题

该文件可能已不具有读取权限,因为它已作为源帐户传递到目标服务器。

您需要确保源文件具有必需的权限,尤其是读取权限

-rw-r--r--

chmod 744

然后将文件scp到目标位置。这将解决


3
-rw-r--r--是644,而不是744。在实际上不是可执行文件的文件上设置可执行权限可能会导致问题。
G-Man说'恢复莫妮卡'

3

对我来说,解决“拒绝权限”的问题是,在远程服务器上,将文件夹所有权更改为root :(当您将文件发送给非root用户并且目录归root所有时,可能会发生这种情况) 。远程计算机(复制目标):

sudo chown (your username) (remote folder)

同样要确保启用远程文件夹上的所有权限:(并非总是必要的):

sudo chmod 777 (remote folder)

1

您有scp相反的论点。首先是来源,然后是目的地,例如cpman scp更多细节。


1

拒绝权限表示您不是服务器的根。您只在那开户。因此,在这种情况下,您需要执行以下操作:

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

这将复制到服务器上的主目录。

这也将起作用:

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

0

从www.mremoteng.org/安装Windows工具“ mRemoteG”

创建到所需框的SSH连接。

点击“传输文件”菜单。

它将允许轻松地从Windows到Linux传输文件。

谢谢。


0

Amazon Linux AMI

在当前情况下,请确保您需要从家中设置绝对服务器路径:

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

0

相同的权限适用于scp的两侧。如果用户没有写入目标的权限,则会出现此错误。这些症状似乎暗示了源,但是在我的情况下,目标是由root创建的,并且缺少对目标用户帐户的写许可权。


0

就我而言,我还尝试使用-R将所有权限授予该文件夹,但仍然出现有关权限的错误。

我必须在目标服务器和文件夹的路径之前删除“ /”。原因是因为下载是ssh到服务器后我可以列出的第一个文件夹,例如:ssh tiennsloit@13.76.91.2

这有效:

sudo scp -rp /用户/macintosh.vn/Downloads/bbhs_20190301.zip tiennsloit@13.76.91.2:下载

这不起作用:

sudo scp -rp /用户/macintosh.vn/Downloads/bbhs_20190301.zip tiennsloit@13.76.91.2:/下载


0

轻松修复。确保您是root。SCP到遥控器,它将询问您该机器的root密码。刚刚遇到的问题就是解决方案。您将其root。


由于通常在sshd_config中禁用root登录,因此您应该向OP说明如何更改此设置(尽管不建议这样做)。
ajgringo619

为什么您坚持使用root来复制(任何)文件?还请注意〜7年前的可接受答案...
Jeff Schaller

-3

在使用scp命令之前,请确保您向外部的所有人授予读取,写入和执行权限。“ chmod 777文件名”


您可以复制不是777的文件
Archemar 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.