ssh上的scp复制无效-请拒绝权限错误?


82

真让我发疯!我只想将一个简单的文件从笔记本电脑传输到服务器。

我在两台机器上都使用ubuntu。

所以我有:

-rwxr-xr-x 1 sandro    414622 2011-10-14 23:42 sandrophoto-html.tar.gz

我使用以下方式发送:

sudo scp -P XXXX sandrophoto-html.tar.gz usern@server.local:/media/xx/xx/xx

我得到: scp: /media/xx/xx/xx/sandrophoto-html.tar.gz: Permission denied

ps我可能正在做其他事情-我想将位于桌面上的tar.gz文件发送到远程服务器的/ media / yadayda文件夹中


2
就我而言,这是
出于

Answers:


94

根据我的理解,您按正确的顺序进行操作,完成scp的一般方法是:

scp sourceuser@sourcehost:/path/to/source/file destinationuser@destinationhost:/path/to/destination/

从您的问题来看,您有一个本地文件要发送到目标服务器。因此,您拥有正确的语法,这很好!

如果您的权限被拒绝,则说明您使用的用户名不正确或身份验证有误。很有可能是因为sudo命令仅对本地用户有效,对于初学者来说,因此它不会让您在远程机器上拥有root用户,所以这可能就是问题所在。确保您正在远程服务器上登录的用户对您要写入的位置具有写入权限。

如果问题在于没有sudo,destinationuser无法访问该位置,请将文件移至destinationuser的主文件夹,然后从另一台服务器上的Shell sudo mv将该文件放置在正确的位置。


9
谢谢,我不得不向目标目录添加写权限
PiKey 2015年

@PiKey这应该是一个答案
Code-Guru

39

您好有同样的权限错误问题以这种方式解决了

确保您要复制到的目录192.168.0.4归用户用户名所有

chown username downloads

在本地计算机上,然后执行

sudo scp filename.zip username@192.168.0.4:/etc/Myfiles/downloads

干杯


thx是权限,特别是在这里,我必须chmod在远程服务器的目标文件夹上使用
Aquarius Power

26

拒绝权限表示您不是服务器的根。您只需在该处开设一个帐户即可。因此,在这种情况下,您需要执行以下操作:

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

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

这也将起作用:

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

2
救命!:〜/为我做了。
trdavidson

~/确实是这样,-r是递归复制整个目录。
Noam Manos

9

当文件已经存在于目标位置并且现有文件具有只读权限(防止文件被覆盖)时,对我来说会发生此错误。就我而言,我只是登录并删除了现有文件,从而解决了该问题。


7

我有一个类似的问题,它的发生是因为ssh需要-p xxxx指定端口,而scp需要-P xxxx指定端口。轻微的不一致,所以很容易错过:(


夸你。如果我添加了两个Google支持的关键字以使其更加可见,请不要介意:scp doesn't work Permission denied (publickey). lost connection for ec2 compute.amazonaws.com
user1717828

0

有同样的问题。我发现包含我的文件的目录没有足够的权限。所以我只是chmod -R 771 directory_path在源计算机上使用:递归地更改了模式。


0

我试图从本地机器复制为username@localhost;我使用的SSH密钥未注册访问我的本地主机,因此我被拒绝了权限。当我从源代码部分删除它时,它起作用了。

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.