Scp

在兩台遠端機器之間使用 scp 命令時權限被拒絕錯誤

  • October 10, 2019

我的本地網路中有 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 命令訪問我的遠端機器。除了 network-ssh 連接,我沒有任何直接訪問 Machine2 和 Machine3 的權限。

我想將位於 Machine2 中 /usr/local/lib 路徑上的一些文件複製到機器 3 的 /usr/local/lib 路徑中。

為此,當我使用以下命令時,從我的主機 Machine1 開始:

scp user2@192.168.1.2:/usr/local/lib/my_file user3@192.168.1.3:/usr/local/lib/my_file

我得到錯誤:

權限被拒絕,請重試。

權限被拒絕,請重試。

權限被拒絕(公鑰、密碼)。

遇到此錯誤後,我使用了另一種方法。從我的主機 Machine1,我將 Machine2 連接到 ssh 連接。從 ssh connected Machine2 我使用了以下命令:

scp /usr/local/lib/my_file user3@192.168.1.3:/usr/local/lib/my_file

我得到錯誤:

scp:/usr/local/lib/my_file:權限被拒絕

從 ssh connected Machine3 我使用了以下命令:

scp user2@192.168.1.2:/usr/local/lib/my_file /usr/local/lib/my_file

我犯了同樣的錯誤:

scp:/usr/local/lib/my_file:權限被拒絕

我嘗試了 3 種不同的方法來複製 /usr/local/lib 路徑中的一些文件。但是我無法實現複製。

如何在兩台遠端機器之間複製位於 /usr 目錄中的文件?

我相信您收到錯誤的原因是普通使用者沒有設置正確的權限來讀取、寫入或執行您嘗試複製的文件。

我創建了 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 admin@34.200.101.165:/root/FileByRoot /home/heysus/
admin@34.200.101.165's password:
scp: /root/FileByRoot: Permission denied

$ scp -P 2220 admin@34.200.101.165:/home/admin/FileByAdmin /home/heysus/
admin@34.200.101.165'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 admin@34.200.101.165:/home/admin/FileByRoot /home/heysus/
admin@34.200.101.165's password:
FileByRoot                                                                            
100%   13     0.3KB/s   00:00

總之,在 /etc/ssh/sshd_config 文件上啟用 root 使用者並通過 root 使用者複製必要的文件。完成後,在 /etc/ssh/sshd_config 中禁用 root 登錄。

引用自:https://unix.stackexchange.com/questions/546003