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

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

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

scp My_file.txt user_id@server:/Home

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

scp/Home:权限被拒绝

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

我究竟做错了什么?

答案1

您的命令正在尝试将新文档放入/您机器的( )。您想要做的是将它们转移到您的目录(因为您没有写入权限/)。如果通往您家的路径类似于/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/

答案2

对我来说,修复“权限被拒绝”的方法是,在远程服务器上,将文件夹所有权更改为 root:(当您向非 root 用户发送文件,并且该目录由 root 用户拥有时,可能会发生这种情况!) 在远程计算机上(复制目标):

sudo chown (your username) (remote folder)

另请确保,启用远程文件夹的所有权限:(并非总是必要):

sudo chmod 777 (remote folder)

答案3

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

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

答案4

权限被拒绝意味着您不是服务器的根用户。您只需在那里拥有一个帐户即可。所以在这种情况下你需要这样做:

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

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

这也将起作用:

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

相关内容