我的本地网络中有 3 台机器。这些都是
Machine1 : 192.168.1.1 (root user: user1)
Machine2 : 192.168.1.2 (root user: user2)
Machine3 : 192.168.1.3 (root user: user3)
我正在 Machine1 上工作。其他机器(2 和 3)是我的远程机器。我使用 Machine1 中的 ssh 命令访问远程计算机。除了网络 ssh 连接之外,我无法直接访问 Machine2 和 Machine3。
我想将 Machine2 中 /usr/local/lib 路径上的一些文件复制到机器 3 的 /usr/local/lib 路径中。
为此,当我在我的主机 Machine1 上使用以下命令时:
scp [email protected]:/usr/local/lib/my_file [email protected]:/usr/local/lib/my_file
我收到错误:
权限被拒绝,请重试。
权限被拒绝,请重试。
权限被拒绝(公钥、密码)。
遇到这个错误后我使用了另一种方法。在我的主机 Machine1 上,我通过 ssh 连接连接 Machine2。从 ssh 连接 Machine2 我使用了命令:
scp /usr/local/lib/my_file [email protected]:/usr/local/lib/my_file
我收到错误:
scp:/ usr / local / lib / my_file:权限被拒绝
从 ssh 连接的 Machine3 我使用了命令:
scp [email protected]:/usr/local/lib/my_file /usr/local/lib/my_file
我犯了同样的错误:
scp:/ usr / local / lib / my_file:权限被拒绝
我尝试了 3 种不同的方法来复制 /usr/local/lib 路径中的某些文件。但是我无法实现复制。
如何在两台远程计算机之间复制位于 /usr 目录中的文件?
答案1
我相信您收到错误的原因是普通用户没有设置正确的权限来读取、写入或执行您尝试复制的文件。
我创建了 2 个文件,/root/FileByRoot 和 /home/admin/FileByAdmin。
$ ll /root/FileByRoot
-rw-r--r-- 1 root root 13 Oct 10 00:43 /root/FileByRoot
$ ll /home/admin/FileByAdmin
-rw-rw-r-- 1 admin admin 19 Oct 10 00:43 /home/admin/FileByAdmin
现在,这是当我尝试使用管理员用户将它们复制到另一台计算机时得到的结果。
$ scp -P 2220 [email protected]:/root/FileByRoot /home/heysus/
[email protected]'s password:
scp: /root/FileByRoot: Permission denied
$ scp -P 2220 [email protected]:/home/admin/FileByAdmin /home/heysus/
[email protected]'s password:
FileByAdmin 100% 19 0.5KB/s 00:00
$ ll /home/heysus/FileByAdmin
-rw-rw-r-- 1 heysus heysus 19 Oct 10 00:56 /home/heysus/FileByAdmin
现在让我们将文件移动到管理员具有完全控制权的目录。
$ mv FileByRoot /home/admin/FileByRoot
由于管理员拥有该文件夹的权限,我现在可以复制它。
$ scp -P 2220 [email protected]:/home/admin/FileByRoot /home/heysus/
[email protected]'s password:
FileByRoot
100% 13 0.3KB/s 00:00
总之,在 /etc/ssh/sshd_config 文件上启用 root 用户,并通过 root 用户复制必要的文件。完成后,在 /etc/ssh/sshd_config 中禁用 root 登录。