我尝试使用远程计算机将文件传输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:~/