最初寫這篇文章的時候,對 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/