"如何在Linux之间复制文件及文件夹" 修訂間的差異
從 YTYZX有图有真相的百科
小 (恢复45.77.171.9(讨论)的编辑至111.19.91.41的最后版本) |
|||
(未顯示由 3 位使用者於中間所作的 15 次修訂) | |||
行 3: | 行 3: | ||
A主机: IP: 192.168.1.103 系统版本:CentOS release 6.7 | A主机: IP: 192.168.1.103 系统版本:CentOS release 6.7 | ||
B主机: IP: 192.168.1.105 系统版本:Kali GNU/Linux Rolling | B主机: IP: 192.168.1.105 系统版本:Kali GNU/Linux Rolling | ||
+ | |||
+ | == 查看主机配置 == | ||
1.在A主机下输入“ifconfig”查看IP地址,本例中为192.168.1.103。 | 1.在A主机下输入“ifconfig”查看IP地址,本例中为192.168.1.103。 | ||
行 25: | 行 27: | ||
10.在A主机下输入“ping 192.168.1.105”并按回车键确定,保证网络通信正常,确认无误后按Ctrl+c停止此命令。 | 10.在A主机下输入“ping 192.168.1.105”并按回车键确定,保证网络通信正常,确认无误后按Ctrl+c停止此命令。 | ||
[[File:SCP10.png]] | [[File:SCP10.png]] | ||
+ | |||
+ | == 从A主机下载B主机文件 == | ||
+ | |||
11.输入“scp root@192.168.1.105:/tmp/scptest.txt /tmp/scptest.txt”并按回车键确定。 | 11.输入“scp root@192.168.1.105:/tmp/scptest.txt /tmp/scptest.txt”并按回车键确定。 | ||
此命令意思:使用scp命令,以root用户登录主机192.168.1.105并复制B主机/tmp目录下名为scptest.txt的文件, | 此命令意思:使用scp命令,以root用户登录主机192.168.1.105并复制B主机/tmp目录下名为scptest.txt的文件, | ||
行 44: | 行 49: | ||
16.在编辑器里可看到文件内容与B主机的源文件相同,为“This is a test for scp”。 | 16.在编辑器里可看到文件内容与B主机的源文件相同,为“This is a test for scp”。 | ||
[[File:SCP22.png]] | [[File:SCP22.png]] | ||
− | + | ||
− | + | == 从A主机下载B主机文件夹 == | |
− | + | ||
− | + | 17.在A主机里输入“cp -r /root/Pictures/ /tmp/Pic”并按回车键将/root/Picturs/目录下所有文件复制到/tmp/Pic目录下。 | |
+ | [[File:SCP23.png]] | ||
+ | 18.在A主机/tmp目录下输入“ls Pic/”查看/tmp/Pic/目录下的文件,内容为两个截屏图片文件。 | ||
+ | [[File:SCP24.png]] | ||
+ | 19.在B主机下输入“scp -r root@192.168.1.105:/tmp/Pic /tmp”并按回车键将A主机(192.168.1.105)/tmp/Pic目录下的文件复制到B主机/tmp目录下, | ||
+ | 输入A主机root用户密码即开始复制。 | ||
+ | 注意:使用scp命令复制目录需加上“-r”参数。 | ||
+ | [[File:SCP25.png]] | ||
+ | 20.在B主机下输入“ls -l /tmp/Pic/”查看已复制文件。 | ||
+ | [[File:SCP26.png]] | ||
+ | |||
+ | == 从A主机上传文件到B主机 == | ||
+ | 21.在B主机/tmp目录下输入“mkdir upload”新建一个名为upload的文件夹。 | ||
+ | [[File:SCP27.png]] | ||
+ | 22.在A主机输入“scp /tmp/scptest.txt root@192.168.1.105:/tmp/upload/scptest.txt”命令将A主机/tmp目录下名为scptest.txt的文件上传到B主机(192.168.1.105)的/tmp/upload文件夹,并保持文件名为scptest.txt。 | ||
+ | 注意:按回车键后提示输入B主机的root用户密码,输入正确密码后即开始上传。 | ||
+ | [[File:SCP28.png]] | ||
+ | |||
+ | == 从A主机上传文件夹到B主机 == | ||
+ | |||
+ | 23.同理在A主机输入“scp -r /tmp/Pic/ root@192.168.1.105:/tmp/upload”即可将文件夹上传。 | ||
+ | 注意:上传文件夹需添加“-r”参数。 | ||
+ | [[File:SCP29.png]] | ||
+ | == 故障排除 == | ||
+ | 24.输入“scp root@192.168.1.105:/tmp/scptest.txt /tmp/scptest.txt”命令并按回车键确定提示“-bash: scp: command not found”。 | ||
+ | 注意:此错误由未安装openssh引起。 | ||
+ | [[File:SCP12.png]] | ||
+ | 25.在CentOS/RHEL 或者Fedora系统输入“yum install openssh-clients ”并按回车键安装。 | ||
+ | 注意:此处为openssh-clients。 | ||
+ | [[File:SCP13.png]] | ||
+ | 26.输入“y”即可开始安装。 | ||
+ | [[File:SCP14.png]] | ||
+ | 27.安装完毕后输入“service sshd status”查看sshd服务状态。 | ||
+ | [[File:SCP15.png]] | ||
+ | 28.在Ubuntu或者Debian系统下需输入“apt-get install openssh-client ”并按回车键安装(本例中B主机已安装)。 | ||
+ | 注意:此处为openssh-client,在client后面没有s。 | ||
+ | [[File:SCP16.png]] | ||
+ | 29.输入“service ssh start”启动ssh服务。 | ||
+ | 注意:此处服务名为ssh,不是sshd。 | ||
+ | [[File:SCP17.png]] | ||
+ | 30.输入“scp root@192.168.1.105:/tmp/scptest.txt /tmp/scptest.txt”并按回车键确定,出现如下错误,则需在A主机和B主机上启动ssh或者sshd服务。 | ||
+ | 错误提示:ssh: connect to host 192.168.1.105 port 22: Connection refused | ||
+ | 注意:使用scp命令需确保A主机和B主机均已启动ssh或者sshd服务。 | ||
+ | 在CentOS/RHEL或者Fedora系统输入“service sshd start”或“systemctl start sshd”启动服务。 | ||
+ | 在Ubuntu或者Debian系统下需输入“service ssh start”启动服务。 | ||
+ | [[File:SCP30.png]] |
於 2022年3月24日 (四) 20:48 的最新修訂
本例中使用scp(secure copy)命令進行複製。scp命令適用於在Linux下進行遠程拷貝文件。
本例中以以下两台主机为例,主机信息如下。 A主机: IP: 192.168.1.103 系统版本:CentOS release 6.7 B主机: IP: 192.168.1.105 系统版本:Kali GNU/Linux Rolling
查看主機配置
1.在A主机下输入“ifconfig”查看IP地址,本例中为192.168.1.103。
2.在A主机下输入“cat /etc/issue”查看系统版本,本例中为CentOS release 6.7。
3.在B主机下输入“ifconfig”查看IP地址,本例中为192.168.1.105。
4. 在A主机下输入“cat /etc/issue”查看系统版本,本例中为Kali GNU/Linux Rolling。
5.在A主机下输入"cd /tmp"进入tmp目录,并输入“ls”查看目录内容(此步骤可省略)。
6.在B主机下输入"cd /tmp"进入tmp目录,并输入“ls”查看目录内容(此步骤可省略)。
7.在B主机下输入“vi scptest.txt”并按回车键,新建一个名为scptest.txt的文件。
8.任意输入内容并按ESC键,输入“:x”保存并退出。 本例中输入“This is a test for scp”。
9.在B主机/tmp命令下输入“ls”查看,发现已经新建了名为scptest.txt的文件。
10.在A主机下输入“ping 192.168.1.105”并按回车键确定,保证网络通信正常,确认无误后按Ctrl+c停止此命令。
從A主機下載B主機文件
11.输入“scp root@192.168.1.105:/tmp/scptest.txt /tmp/scptest.txt”并按回车键确定。 此命令意思:使用scp命令,以root用户登录主机192.168.1.105并复制B主机/tmp目录下名为scptest.txt的文件, 将之复制到本机(A主机)/tmp目录下,文件名任为scptest.txt。
12.如为此次连接此主机(B主机),则会出现如下提示,大致意思为无法确认公钥指纹为ec:09:f0:35:99:ed:8d:74:df:4c:df:c6:7e:4d:4a:8e的主机真实性,询问您是否继续。 提示信息:The authenticity of host '192.168.1.105(192.168.1.105) can't be established. RSA key fingerprint is ec:09:f0:35:99:ed:8d:74:df:4c:df:c6:7e:4d:4a:8e. Are you sure you want to continue connecting (yes/no)?
13.如您确认此公钥指纹真实有效则可输入“yes”继续,A主机将自动保存B主机的密钥指纹到$HOME/.ssh/known_hosts文件中。下次连接时将不会再次出现警告。 提示信息:Warning: Permanently added ‘192.168.1.105’(RSA) to the list of known hosts.
14.在“root@192.168.105's password:”后面输入B主机的用户(本例中为root)密码后将开始复制文件。 注意:本例中因文件(scptest.txt)较小,故复制速度和时间均为0,复制大文件则可看到复制速度及时间。
15.在A主机里输入“vi /tmp/scptest.txt”可查看新复制文件内容。
16.在编辑器里可看到文件内容与B主机的源文件相同,为“This is a test for scp”。
從A主機下載B主機文件夾
17.在A主机里输入“cp -r /root/Pictures/ /tmp/Pic”并按回车键将/root/Picturs/目录下所有文件复制到/tmp/Pic目录下。
18.在A主机/tmp目录下输入“ls Pic/”查看/tmp/Pic/目录下的文件,内容为两个截屏图片文件。
19.在B主机下输入“scp -r root@192.168.1.105:/tmp/Pic /tmp”并按回车键将A主机(192.168.1.105)/tmp/Pic目录下的文件复制到B主机/tmp目录下, 输入A主机root用户密码即开始复制。 注意:使用scp命令复制目录需加上“-r”参数。
20.在B主机下输入“ls -l /tmp/Pic/”查看已复制文件。
從A主機上傳文件到B主機
21.在B主机/tmp目录下输入“mkdir upload”新建一个名为upload的文件夹。
22.在A主机输入“scp /tmp/scptest.txt root@192.168.1.105:/tmp/upload/scptest.txt”命令将A主机/tmp目录下名为scptest.txt的文件上传到B主机(192.168.1.105)的/tmp/upload文件夹,并保持文件名为scptest.txt。 注意:按回车键后提示输入B主机的root用户密码,输入正确密码后即开始上传。
從A主機上傳文件夾到B主機
23.同理在A主机输入“scp -r /tmp/Pic/ root@192.168.1.105:/tmp/upload”即可将文件夹上传。 注意:上传文件夹需添加“-r”参数。
故障排除
24.输入“scp root@192.168.1.105:/tmp/scptest.txt /tmp/scptest.txt”命令并按回车键确定提示“-bash: scp: command not found”。 注意:此错误由未安装openssh引起。
25.在CentOS/RHEL或者Fedora系统输入“yum install openssh-clients”并按回车键安装。 注意:此处为openssh-clients。
26.输入“y”即可开始安装。
27.安装完毕后输入“service sshd status”查看sshd服务状态。
28.在Ubuntu或者Debian系统下需输入“apt-get install openssh-client”并按回车键安装(本例中B主机已安装)。 注意:此处为openssh-client,在client后面没有s。
29.输入“service ssh start”启动ssh服务。 注意:此处服务名为ssh,不是sshd。
30.输入“scp root@192.168.1.105:/tmp/scptest.txt /tmp/scptest.txt”并按回车键确定,出现如下错误,则需在A主机和B主机上启动ssh或者sshd服务。 错误提示:ssh: connect to host 192.168.1.105 port 22: Connection refused 注意:使用scp命令需确保A主机和B主机均已启动ssh或者sshd服务。 在CentOS/RHEL或者Fedora系统输入“service sshd start”或“systemctl start sshd”启动服务。 在Ubuntu或者Debian系统下需输入“service ssh start”启动服务。