前言
事情大概是这样:前段时间刚接手了一个新项目,由于一些历史原因,md文件中只写了linux运行环境的描述。看见公司的大佬们都如鱼得水的在linux下进行开发,小弟我只能留下没技术的眼泪~
经过了一段时间的痛苦以后,被各种IDE开发工具和语法提示惯坏的我,冒出了一个想法:IDE可以远程到服务器进行开发吗?
后来发现是我孤陋寡闻了,这个技术非常成熟已经有了,就是我们非常熟悉的vscode。想必大家都知道vscode拥有非常丰富的扩展市场,其中本文使用到由微软提供的Remote-ssh
准备工作
一、装有vscode的主控
我这里使用的是我日常开发的机器,上本来就装有vscode(没有的同学请自行安装)。安装完毕后我们打开插件市场进行搜索Remote-ssh安装,请认准Microsoft出品哈。
二、同一域网下的linux
具体看大家的工作需要,docker或物理机均可。本文使用的是Multipass,对Multipass不了解的小伙伴可以看我上期文章《使用轻量级虚拟机Multipass安装运行ubuntu》。
打开命令行,创建一个名为test-remote的ubuntu镜像
multipass launch --name test-remote
或使用以下命令按需分配机器配置
multipass launch -n test-remote -c 4 -m 4G -d 40G
- -n, --name: 名称
- -c, --cpus: cpu核心数, 默认: 1
- -m, --mem: 内存大小, 默认: 1G
- -d, --disk: 硬盘大小, 默认: 5G
安装完成以后我们输入一下命令进入镜像
multipass shell test-remote
安装完毕,且已经进入虚拟机内部了!其他的各位同学自行展开吧。
三、建立链接
接下来是重点,我们建立连接是通过密钥方式进行通讯。
创建密钥
使用ssh-keygen命令创建的密钥,会在本地~/.ssh/的目录内生成两个文件id_rsa-remote-ssh和id_rsa-remote-ssh.pub,我们要部署的是id_rsa-remote-ssh.pub公钥内容。
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa-remote-ssh
- -t 指定要创建的类型
- -b 密钥长度
- -f 指定用来保存密钥的文件名
- id_rsa-remote-ssh 名字可以随意定义
上传公钥到远程服务器
mac/linux通常在~/.ssh/id_rsa-remote-ssh.pub。
windows通常在c盘用户目录下的.ssh文件夹id_rsa-remote-ssh.pub。
复制id_rsa-remote-ssh.pub中的内容,我们切换回虚拟机内
multipass shell test-remote
进入虚拟机的~/.ssh目录并创建authorized_keys文件
cd ~/.ssh && touch authorized_keys
将主机的id_rsa-remote-ssh.pub 中的内容复制并保存进authorized_keys(multipass也会与主机之间建立一个authorized_keys,故存在authorized_keys大可不必惊慌失措,我们进行追加即可)
sudo vi ~/.ssh/authorized_keys
创建vscode的连接配置
vscode安装完Remote-ssh后会多出一个电脑样式图标,我们点开(请忽略我已经配置的测试机)
点击配置按钮,选择配置文件位置
选择完成后开始配置
Host xxx # xxx 自定义连接名称
User ubuntu # root 远程服务器账户名称
HostName 47.92.xxx.18x # 47.92.xxx.18x 远程服务器地址
Port 22 # ssh端口
IdentityFile ~/.ssh/id_rsa_xxxx # ~/.ssh/id_rsa_xxxx 本地密钥所在位置
如果你想连接多台远程服务器,继续在后面追加配置内容即可
贴一下我多台的配置
连接试试吧!
初次连接会让你确认授权,直接continue
好了,大功告成,已经成功连接到虚拟机上了!
初体验总结
整个的初体验对我来讲还是比较顺利的,整个的开发就像是在本地一样。安装完成以后有些语法提示消失了,我们需要重新在目标机器上安装一下插件。
祝大家生活愉快~