最初写这篇文章的时候,对 openssh大家族的工具套件(例如: ssh、sshd、ssl、scp等)不太熟悉,现在看来这个文章的标题(虚拟机与物理机)是存在问题的。
本质上,本文关心的并不是【虚拟机】与【物理机】的传输问题,而是使用scp套件工具在【本地机器】与【远程机器】之间的文件传输场景。
1 scp:语法格式
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/