本文主要是介绍使用SCP工具和SSH实现主机与Hyper-V虚拟机之间的文件传输,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
实验环境
——主机软件——
Windows 10 1903(18362.356)
——虚拟机软件——
Hyper-V(10.0.18362.1),Ubuntu 18.04.3最小安装,与主机共享IP
前言
Hyper-V是Windows 10自带的虚拟机平台,较VMWare更加简洁且是免费的,但是使用中发现Hyper-V不能提供类似VMWare Tool的文件拖拽拷贝功能,为了实现主机-虚拟机之间的文件互传,可以使用SCP+SSH代替其他的第三方软件。
Ubuntu端配置
- 对于精简版版本,先安装SSH:
sudo apt install ssh
- 启动SSH服务
service sshd start
- 关闭防火墙
/etc/init.d/iptables stop
- 查看端口号(默认SSH端口号是22)
精简版Ubuntu无此文件,可不操作
grep Port /etc/ssh/sshd.config
该端口号可以使用vi/vim工具修指定#Port=的值进行修改,指定的端口需要被防火墙例外(像上面关闭防火墙也可)
主机配置
- 打开命令提示符(不需要管理员模式)
- Windows下默认集成SCP工具,命令语法如下:
获取服务器上的文件
scp -P 22 user@IP:/源文件目录/源文件名 X:\保存的路径\保存的文件名
获取服务器上的目录
scp -P 22 -r user@IP:/源文件目录 X:\保存的目录
向服务器传递文件
scp -P 22 X:\源路径\源文件名 user@IP:/目的目录/保存的文件名
向服务器传递目录
scp -P 22 -r X:\源路径 user@IP:/目的目录
*其中user为Ubuntu中的用户名(该用户可以不是root);IP是虚拟机和主机共享的IP地址,查询方法见下文,其他详细信息请查询文末标注的参考来源
Tips:
——获取IP地址——
Windows环境下可以通过命令提示符中输入ipconfig或者查看适配器设置或者查看路由器客户端页面等方式得到IP地址;
Ubuntu环境下可以在Terminal中输入ifconfig查看ethn的IP地址,该方法需要安装net-tools工具:
sudo apt install net-tools
在本文设定的使用环境中,由于主机和虚拟机共用IP,所以无论在Windows下还是在Ubuntu下,只需查询一次即可。
- apt和apt-get的区别请自行查找
- 若上传/下载时提示SCP No such file or directory,请优先检查路径和文件名正确性,以及标点符号等的正确性
参考
- SSH配置方法
- SCP命令使用
————2019-9-25 @燕卫博————
这篇关于使用SCP工具和SSH实现主机与Hyper-V虚拟机之间的文件传输的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!