[Linux]scp/sshpass:物理主机与虚拟机的文件传输

2023-05-18,,

最初写这篇文章的时候,对 openssh大家族的工具套件(例如: ssh、sshd、ssl、scp等)不太熟悉,现在看来这个文章的标题(虚拟机物理机)是存在问题的。

本质上,本文关心的并不是【虚拟机】与【物理机】的传输问题,而是使用scp套件工具在【本地机器】与【远程机器】之间的文件传输场景。

1 scp:语法格式

scp
[-12346BCpqrv]
[-c cipher]
[-F ssh_config]
[-i identity_file]
[-l limit]
[-o ssh_option]
[-P port]
[-S program]
[[user@]host1:]file1
...
[[user@]host2:]file2 scp 源文件路径 用户名@服务器地址:目的路径

2 物理机与虚拟机数据传输

CMD(物理机): 将虚拟机的文件夹 拷贝到 物理机

scp -r vmUsername@VM_IP:/.../vmDir/ /.../physicalHostDir/

-r:文件夹,文件目录

CMD(物理机): 将物理机的文件夹 拷贝到 虚拟机

scp -r /.../physicalHostDir/ vmUsername@VM_IP:/.../vmDir/

带明文密码拷贝 当前机器目录下的文件 到 目标机器中

yum -y install sshpass

sshpass -p 200服务器root用户密码 scp -P 22 /tmp/log.csv root@192.168.149.200:/tmp
sshpass -p 'redhat' ssh root@192.168.1.1 'systemctl restart nginx'

3 Winodws与Linux数据传输

注意1:因为windows系统本身不支持ssh协议.

所以,要想上面的命令成功执行,必须在windows客户端安装ssh for windows的客户端软件,比如Openssh(客户端+服务端)、winsshd、freeSSHd等,使windows系统支持ssh协议才行。

Win10默认预安装了openssh客户端,openssh服务端未预安装,可在Window【可选应用】中手动快速安装Openssh服务端
注意2:数据接受端需开启ssh服务端服务

例如,向windows上传数据,则需要windows开启ssh服务端服务

以Windows向另一台windows传输数据为例L

上传文件:Windows→Linux

scp C:\Users\zbh\Desktop\1.txt  lucas@192.168.11.150:/home/lucas/

下载文件:Windows←Linux

scp lucas@192.168.110.128:/home/lucas/world.txt C:\Users\zbh\Desktop\

上传文件: Linux→Windows

scp /home/oracle/a.txt  administrator@192.168.3.181:/d:/

下载文件:Linux←Windows

scp administrator@192.168.3.181:/d:/test/config.ips /home/oracle

4 传输文件夹数据

scp -r /opt/SDCInstall/servers helloUser@xx.yy.zz.mm:/opt/SDCInstall/

X 参考文献

Linux中虚拟机远程复制文件SCP命令 - 博客园
scp - Linux命令
使用scp在windows和Linux之间互传文件 - 博客园
在windows中使用scp命令 - CSDN

[Linux]scp/sshpass:物理主机与虚拟机的文件传输的相关教程结束。

《[Linux]scp/sshpass:物理主机与虚拟机的文件传输.doc》

下载本文的Word格式文档,以方便收藏与打印。