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

最初写这篇文章的时候,对 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 参考文献

posted @ 2020-07-06 19:43  千千寰宇  阅读(2757)  评论(0编辑  收藏  举报