我有两台不同的机器,我尝试通过 SCP 复制文件。我执行了以下命令:
scp trial.txt [email protected]:/unixStudy/trial.txt
然后我收到“权限被拒绝”错误,即使我输入了正确的 root 用户密码。
我进行了一些搜索,并授予了 scp 文件可由目标计算机上的其他用户执行的权限,但它仍然不起作用。
答案1
SSH(安全外壳)是起作用的基本协议。建立 SSH 连接后,SCP(安全复制)就会执行复制过程。因此,scp
对于初学者来说,必须正确配置使用该命令连接的系统上的 SSH 服务器。
非常常见的是/etc/ssh/sshd_config
包含PermitRootLogin = no
。因为你说尝试 scp 并输入 root 密码如果您正在执行 scp 尝试以 root 身份连接到任何计算机,您将被拒绝。
解决方案:
- 首先进行简单的
ssh
连接而不是使用scp
并确保它适用于给定的用户名。如果没有,那么scp
在相同的参数下将无法工作。语法是ssh username@systemname
如果成功ssh username@systemname
则执行相应的操作scp username@system://path_to_file/filename /location_on_current_system
应该可以 - 可能会修改
/etc/ssh/sshd_config
和更改,PermitRootLogin yes
然后重新启动 sshd 守护进程/服务。通常,出于安全原因,permitrootlogin=no 但根据您的环境可能无关。你的来电。如果您必须以 root 身份连接到充当 ssh 服务器的计算机,则需要在 sshd_config 中进行更改。
还意识到如果您以用户名登录abc123
然后执行
scp othersystem:/path_to_file/filename .
实际上等同于
scp abc123@othersystem:/path_to_file/filename .
确保您使用正确的密码和有效的用户名进行连接。
另外,如果你想输入根密码胜过现有密码;您必须为所使用的给定帐户名输入正确的密码。
答案2
您可以简单地删除trial.txt
之后/unixStudy/
。
并且,确保您有正确的权限写入/unixStudy
远程服务器上的目录。
scp trial.txt [email protected]:/unixStudy/trial.txt