通过 ssh 进行 scp 复制不起作用 - 权限被拒绝错误,好吗?

107 scp

快把我逼疯了!我只想将一个简单的文件从笔记本电脑传输到服务器。

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

所以我有:

-rwxr-xr-x 1 sandro    414622 2011-10-14 23:42 sandrophoto-html.tar.gz
Run Code Online (Sandbox Code Playgroud)

我发送它使用:

sudo scp -P XXXX sandrophoto-html.tar.gz usern@server.local:/media/xx/xx/xx
Run Code Online (Sandbox Code Playgroud)

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

ps我可能会这样做 - 我想将位于桌面上的文件 tar.gz 发送到远程服务器到文件夹 /media/yadayda

Ann*_*nna 115

根据我的理解,您按照正确的顺序安排了事情,完成 scp 的一般方式是:

scp sourceuser@sourcehost:/path/to/source/file destinationuser@destinationhost:/path/to/destination/
Run Code Online (Sandbox Code Playgroud)

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

如果您的权限被拒绝,那么您没有使用正确的用户名或身份验证有问题。最有可能的是,这是因为 sudo 命令只在本地工作,对于初学者来说,它不会给你远程机器上的 root,所以这可能是问题所在。确保您在远程服务器上登录的用户对您尝试写入的位置具有写入权限。

如果问题是目标用户在没有 sudo 的情况下无法访问该位置,请将文件移动到目标用户的主文件夹,然后从另一台服务器上的 shell 中 sudo mv 文件以将其放在正确的位置。

  • 谢谢,我必须为目标目录添加写权限 (12认同)

小智 58

嗨,同样的权限错误问题以这种方式解决了

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

chown username downloads
Run Code Online (Sandbox Code Playgroud)

在你的本地机器上然后做

sudo scp filename.zip username@192.168.0.4:/etc/Myfiles/downloads
Run Code Online (Sandbox Code Playgroud)

干杯


小智 32

权限被拒绝意味着您不是服务器的根。你只要在那里开个账户就行了。所以在这种情况下,你需要这样做:

sudo scp -r /path2yourFolder/ username@server_Ip:/home/username
Run Code Online (Sandbox Code Playgroud)

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

这也将起作用:

scp -r /path2yourFolder/ username@server_Ip:~/
Run Code Online (Sandbox Code Playgroud)

  • 救命稻草!:~/ 为我做的。 (2认同)

小智 12

当文件已存在于目标位置并且现有文件具有只读权限(防止文件被覆盖)时,我会发生此错误。就我而言,我刚刚登录并删除了现有文件并纠正了问题。


小智 10

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