问题描述
这让我疯了!我只想将一个简单的文件从笔记本电脑传输到服务器。
我在两台机器上都使用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
附:我可能会这样做 – 我想将位于我桌面上的文件tar.gz发送到远程服务器到/media /yadayda文件夹
最佳解决办法
根据我的理解,你有正确的顺序,scp的一般方式是:
scp sourceuser@sourcehost:/path/to/source/file destinationuser@destinationhost:/path/to/destination/
根据您的问题判断,您有一个要发送到目标服务器的本地文件。所以你有正确的语法,这是好的!
如果您的权限被拒绝,那么您没有使用正确的用户名或者身份验证的错误。很可能,这是因为sudo命令只能在本地工作,对于初学者来说,所以它不会在远程盒子上给你root,所以这可能就是问题所在。确保您在远程服务器上登录的用户对您尝试写入的位置具有写入权限。
如果问题是目标用户在没有sudo的情况下无法访问该位置,请将文件移动到destinationuser的主文件夹,然后从另一台服务器上的shell sudo mv该文件,将其放在正确的位置。
次佳解决办法
嗨有这个相同的权限错误问题解决了这种方式
确保您在192.168.0.4
上复制到的目录由用户用户名拥有
chown username downloads
在你的本地机器上然后做
sudo scp filename.zip username@192.168.0.4:/etc/Myfiles/downloads
干杯
第三种解决办法
Permisssion Denied意味着您不是服务器的根。你只需在那里开一个账户。那么在这种情况下你需要这样做:
sudo scp -r /path2yourFolder/ username@server_Ip:/home/username
这将复制到服务器上的主目录。
这也有效:
scp -r /path2yourFolder/ username@server_Ip:~/
第四种办法
当文件已存在于目标位置且现有文件具有read-only权限(防止文件被覆盖)时,我发生此错误。在我的情况下,我只是登录并删除了现有文件,并纠正了问题。
第五种办法
我遇到了类似的问题,因为ssh
采用-p xxxx
指定端口,而scp
采用-P xxxx
指定端口。轻微不一致,很容易错过:(