Ere*_*rez 57 ssh scp permissions
我尝试将文件从远程计算机传输ssh
到我的计算机:
scp My_file.txt user_id@server:/Home
Run Code Online (Sandbox Code Playgroud)
这应该将 My_file.txt 放在我自己计算机上的主文件夹中,对吗?我得到
scp/Home:权限被拒绝
此外,当我尝试:...@server:/Desktop
,以便将文件从远程计算机复制到我的桌面。
我究竟做错了什么?
bin*_*lse 74
您的命令正在尝试将新文档放入您机器的根目录( /
)。您想要做的是将它们传输到您的主目录(因为您没有写入权限/
)。如果通往您家的路径类似于/home/erez
尝试以下操作:
scp My_file.txt user_id@server:/home/erez/
Run Code Online (Sandbox Code Playgroud)
您可以使用快捷方式替换主目录的路径~/
,因此以下将具有相同的效果:
scp My_file.txt user_id@server:~/
Run Code Online (Sandbox Code Playgroud)
你甚至可以在远端完全省去路径;这意味着您的主目录。
scp My_file.txt user_id@server:
Run Code Online (Sandbox Code Playgroud)
也就是说,要将文件复制到您的桌面,您可能希望将其传输到/home/erez/Desktop/
:
scp My_file.txt user_id@server:/home/erez/Desktop/
Run Code Online (Sandbox Code Playgroud)
或使用快捷方式:
scp My_file.txt user_id@server:~/Desktop/
Run Code Online (Sandbox Code Playgroud)
或者使用远程端的相对路径,相对于您的主目录进行解释:
scp My_file.txt user_id@server:Desktop/
Run Code Online (Sandbox Code Playgroud)
正如@ckhan 已经提到的,您还必须交换参数,它必须是
scp FROM TO
Run Code Online (Sandbox Code Playgroud)
因此,如果要将文件My_file.txt
从服务器复制user_id@server
到桌面,则应尝试以下操作:
scp user_id@server:/path/to/My_file.txt ~/Desktop/
Run Code Online (Sandbox Code Playgroud)
如果文件My_file.txt
位于服务器上的主目录中,您可以再次使用快捷方式:
scp user_id@server:~/My_file.txt ~/Desktop/
Run Code Online (Sandbox Code Playgroud)
小智 14
什么固定的拒绝“权限”对我来说,在远程服务器上,更改文件夹的所有权根:(!这可当你发送文件到非root用户发生,目录的所有者是root) 在远程机器(复制目标):
sudo chown (your username) (remote folder)
Run Code Online (Sandbox Code Playgroud)
另外可以肯定的是,启用远程文件夹的所有权限:(并非总是必要的):
sudo chmod 777 (remote folder)
Run Code Online (Sandbox Code Playgroud)
PJ *_*net 13
我来这里是为了“使用 scp 传输文件:权限被拒绝”,因为我遇到了同样的错误。
就我而言,使用 scp 下载的文件会覆盖 root 拥有的文件,而我不是 root。简而言之,检查被覆盖文件的所有权。
小智 5
这似乎是许可问题
该文件可能没有读取权限,因为它作为源帐户传送到目标服务器。
您需要确保源文件具有所需的权限,尤其是读取权限
-rw-r--r--
第 744 章
然后将文件 scp 到目的地。这将得到解决