0.引言
这篇文章本来应该从虚拟机的配置与创建开始说起,但是相关内容我已经在之前的文章中详细解释了,有对linux和CentOS不了解的、对如何创建虚拟机不清楚的、如何用xshell工具连接虚拟机整不明白的,可以参考本专栏的:Linux虚拟机的创建与配网 系列文章
这里我们使用的工具为:
远程终端连接工具:xshell 7、xftp 7
Linux镜像版本:CentOS 7.6
虚拟机软件:VitrualBox 6.1
代码开发IDE:Pycharm/IDEA
1.XFTP文件传输
在“Linux虚拟机的创建与配网”中我分享了如何使用xshell连接我们本地的虚拟机,如果要将主机与虚拟机的文件做交互,其实很简单;同样我们去xshell官网下载xftp(免费版即可),有些读者可能跟我一样在下载xshell的时候就顺便下载了xftp这样更方便(https://www.xshell.com/zh/free-for-home-school/)
启动虚拟机,打开xshell连接虚拟机,启动xftp,即可传输代码工程文件
2.scp命令
xftp确实比较好用,但是在一些情况下他有着致命的缺点:传输过程中可能会造成执行的脚本出现编码问题导致不能运行
别问我为什么会知道,有一次调了一天的代码发现是传输过程中导致的编码问题
那有没有什么安全的方法可以解决这个问题呢?当然有,而且不止一种,我们这里先说比较简单便捷的一种——scp安全拷贝命令
这个命令其实非常强大,可以用于主机和虚拟机、虚拟机与虚拟机之间的文件传输
比如要从主机传到虚拟机我们可以进cmd来执行,只要记住虚拟机的ip地址即可
相关的内容网络上其实很多,因为scp是一个非常常用的命令,在这里就不多讲了;举一个虚拟机之间的例子,仅供参考:
#将本地虚拟机一个名为slurm的包传递到虚拟机192.168.51.67的root目录下
scp ~/slurm.tar.bz2 192.168.51.67:/root
#如果报错,可能是没配置ssh免密登录,按以下执行即可
ssh-keygen -t rsa
ssh-copy-id root@192.168.51.67
3.IDE使用ssh传输工程代码
终于,到了我们本文的主题。要知道scp虽然强大,但毕竟也需要敲一敲,也没有UI,不是很贴合实际使用。尤其是工作、学习中的工程代码通常非常的多,打个包再传过去再解压属实不是很方便,那么我们有没有简单易用的方法呢?那就是使用IDE集成的ssh免密登录来传输
正式介绍这个方法之前有两点需要说明:
1.这里的方法仅仅针对IntelliJ系列的IDE,其他IDE一般也会有这个功能但是操作方法不一样;这里我们用python的IDE——pycharm来演示,其实在IDEA(java的IDE)里面步骤是一样的
2.IDE(集成开发环境)、ssh(安全外壳协议)的概念非常简单,不清楚的读者可以自行去找一下资料,在这里我们就不赘述了,尤其ssh在开发中会经常用到
好了我们正式开始实操:
1.按如下步骤打开配置
2.新增一个SFTP,这里定义的名字叫做master,可以随便取
3.先在connection按如图配置地址等(本例为192.168.91.66),path可以使用autodetect,配置完后test connection看看对不对
4.记得切换到mapping添加映射到虚机的地址,本例这里是root下的/hpc-openapi(一定要配置mapping不然后面可能会出错)
5.配置完成,就这么简单,如果需要传输,右键需要传输的代码/文件,按下图操作即可