2020-12-24 VSCode+SSH远程开发调试伪终端方案

今天把一个用了4年的IBM笔记本重装了Ubuntu,算是废物利用。感谢Ubuntu社区的大佬们对系统所做的优化,IBM笔记本安装Ubuntu一路顺畅,驱动都能自动安装好。有了这台笔记本做服务器,就不用再在台式机上开虚拟机了,内存不再吃紧。
笔记本安装好系统后,第一时间安装了openssh-server,关于ssh、scp等的安装使用方法,可参考2020-11-30的日志
理论上,有了ssh就可以连接服务器并通过vi编辑器编写代码。的确有高人这么做,用vim加插件的方式,双手不离键盘主区域一顿噼里啪啦,看这种高人写代码是种享受,就像在欣赏钢琴演奏。对这种高人,我连望其项背的资格都没有。vi只记得i、esc、:/、:q、:wq这几个最简单的命令,以防误入vi能逃得出来。我想大部分人都被vi劝退过,微软也深明大义,在VSCode下推出了一个remote-SSH的远程开发插件。
官网上写了几条vscode+SSH开发的好处:

  • 使用沙箱中的开发环境,以避免影响本地计算机配置。
  • 小白轻松上手,让每个人都保持一致的环境。
  • 使用本地操作系统上的工具(vscode)管理多个项目版本。
  • 使用适用于Linux的Windows子系统开发Linux部署的应用程序。
  • 可以多端访问现有开发环境。
  • 直接在服务器上调试运行程序。

1. vscode安装remote-ssh插件

在vscode左侧栏的Extensions标签下搜素Remote-SSH,点击安装。安装完成后在左侧栏多出一个Remote Explorer的标签(图标是一个电脑和小地球)。打开该标签,点击+号(Add New),则打开了命令面板,按照提示输入ssh username@ip_address,回车后弹出保存该远程主机的选项,选择第一个就可以。此时Remote Explorer中列出了这个远程主机,右键点击该远程主机,选择Connect Host in Current Window,在弹出的命令面板中输入密码则可建立与该主机的连接。
建立连接后,在vscode会在远程主机上安装vscode server。本地的vscode通过ssh连接远程vscode server进行开发和调试,本地vscode类似一个伪终端,所有开发状态实际都保存在远端的vscode server。原理如下图所示。

vscode server.png

我们可以通过本地vscode打开远程终端(View->Terminal),获得远程主机的bash。也可以在Welcome页点击Open folder,选择你的项目目录打开,在Explorer中则列出选定的目录。从此可以告别vi进行云端开发。


remote-ssh.png

2. 为ssh配置对称密钥免密连接

为了避免每次打开vscode都需要输入密码进行连接,可以为ssh连接配置公私钥认证方式。
win10系统默认已经安装了ssh,因此可直接在本地cmd窗口输入ssh-keygen -t rsa,将生成id_rsa和id_rsa.pub这对公私钥文件,默认保存在当前用户目录的.ssh目录下,在弹出的提示中可以看到该默认目录,直接一路回车即可。
我们的目的是通过win10远程访问ubuntu,则需要将id_rsa.pub这个公钥文件复制到ubuntu上。使用scp命令将id_rsa.pub文件上传到ubuntu的~/.ssh/目录下,如果服务器不存在.ssh目录,则先新建。
在服务器上,将该公钥文件附加到authorized_keys中:cat id_rsa.pub >> authorized_keys
通过sudo vi修改服务器上ssh配置文件/etc/ssh/sshd_confg,添加RSAAuthentication yes和PubkeyAuthentication yes,保存后重启ssh:sudo service ssh restart。(这里还需要最后使用一次vi编辑器,因为通过ssh连接的vscode不具有sudo权限。)
至此,ssh免密连接服务器则配置完毕。可以在win10的cmd下ssh连接服务器测试一下,不再需要输入密码了。关闭vscode后重新打开,也能自动连接到服务器上的vscode server,之前的工作环境都直接加载出来。

  • 要点:Host A连接Host B,则将私钥保存在Host A用户目录.ssh目录下,将公钥附加到Host B用户目录.ssh目录下的authorized_keys文件中

3. 彩蛋

vscode有一个很有意思的插件:彩虹屁。在插件里搜索Rainbow Fart,安装后打开命令面板(ctrl+shift+p),点击Enable Rainbow Fart会提示打开一个网页,在该页面授权浏览器获得声音权限,不要关闭该浏览器页面。在编写代码时,将会有一个女声不停地夸奖你的代码,让你写代码不再孤单。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容