vscode remote 第三方库_使用VSCode进行远程炼丹

点击上方“5分钟学Python”,选择加"星标"或“置顶”

重磅干货,第一时间送达9108c1a78718a72a6b38175be20b61c6.png

作者:韩冰

链接:https://zhuanlan.zhihu.com/p/89662757

转自:Python爱好者社区

本文分享一下我使用vscode作为我的炼丹炉的使用心得。在我们开发过程中,经常需要连接远程的服务器进行炼丹。通常情况下,我们会使用Pycharm的远程开发功能,同步服务器与本地的项目文件,使用远程解释器进行开发。但是使用过的同学都知道,重量级的Pycharm每次远程同步、加载远程解释器都需要相当长的时间。如果我们想要随时切换公司、学校、家里的各个场景,pycharm的同步、加载就成了一场噩梦。特别是当我们的python环境安装了很多依赖包,项目生成了大量文件的时候更是这样。直到vscode推出了Remote Development开发包,便完全解决了这个问题。让我可以在不同的场景快速切换,无需等待同步文件、环境。因为vscode远程开发完全是运行在服务器上的,我们本地的vsocde只是一个前端界面,所以根本无需同步服务器上的文件、解释器依赖库就可以体验到与本地开发完全相同的体验。自从使用了vscode的Remote Development功能,我便完全抛弃了Pycharm。

下载安装

官网下载vscode对应系统版本的安装包。

https://code.visualstudio.com/

安装远程开发插件

4dde0238d958f743457027c59c7979ec.png

安装完成后,vscode左侧多出了一个菜单栏,我们点击配置按钮配置远程服务器的地址。

vscode remote 第三方库_使用VSCode进行远程炼丹_第1张图片

选择当前用户目录下的ssh配置文件进行配置

vscode remote 第三方库_使用VSCode进行远程炼丹_第2张图片

每个服务器需要配置ip,用户名,ssh端口等信息。配置完成后,点击连接到远程的按钮

vscode remote 第三方库_使用VSCode进行远程炼丹_第3张图片

按照提示输入登录密码后,如果左下角显示了服务器的名称,就说明连接成功了。

vscode remote 第三方库_使用VSCode进行远程炼丹_第4张图片

连接成功后,你便可以在远程服务器上安装各种插件

aaad4d6c39d64eb1fefd2ea3a84f20c7.png

图示的图标说明插件已经在远程安装。此时你便可以打开远程的任何文件夹进行项目开发,所有的编辑修改,运行代码也都会在远程进行执行。体验过之后就会感觉超级方便。妈妈再也不用担心我同步文件,切换开发机了。同时,vscode还会非常贴心地为我们记录曾经打开过的文件夹,我们可以直接点击,连接服务器打开文件夹一步到位。

vscode remote 第三方库_使用VSCode进行远程炼丹_第5张图片

设置免密登录

上述配置完成后,还有一个小问题就是我们每次远程连接都要输入密码,很麻烦。所以这里我们设置一下ssh的免密登录。

在本地pc生成ssh公钥和私钥

 ssh-keygen -t rsa

这样会在当前目录生成名为id_rsa的私钥文件和名为id_rsa.pub的公钥文件,-t表示密钥类型是rsa。如果你只输入ssh-keygen生成的RSA密钥长度为2048,如果你对安全性要求比较高可以指定4096位的长度:

ssh-keygen -b 4096 -t rsa

这里-b就是多少位,当你在生成SSHKEY的时候在命令行下会提示你Enter file in which to save the key,让你确认密钥文件保存的路径,一般回车即可(一般默认会在当前用户家目录下的.ssh目录下)。第二个提示是 Enter passphrase (empty for no passphrase) 让你输入一个密钥的密码,如果不输入则留空;回车生成公私钥完毕 。(这里建议密码留空)

手动上传公钥文件

将本地的公钥文件上传到服务器上,然后在服务器需要免密登录的用户家目录下查看是否有 ~/.ssh/authorized_keys 这个文件,如果没有手动创建一个:

touch ~/.ssh/authorized_keys

然后我们将公钥内容写入到authorized_keys文件中,因为这个文件可能已经有内容了,所以你可以使用如下方式

cat -n ~/.ssh/rsa.pub ~/.ssh/authorized_keys
  1. 将.ssh目录的权限为700

  2. 将authorized_keys目录的权限为600

chmod 700 ~/.ssh/

自动上传本地公钥

ssh-copy-id 复制公钥

这个工具还蛮有用的,不过它会将我本地的所有公钥都传到服务器,使用方法:

ssh-copy-id -p 22 username@remote-server

windows中没有ssh-copy-id可以使用以下命令代替

cat ~/.ssh/id_rsa.pub | ssh -p 22 username@remote-server "cat >> ~/.ssh/authorized_keys"

配置完成后,再次使用vscode远程连接服务器就不用再输入密码了。

使用autossh进行内网穿透

设想这样的场景,你在公司或者学校有一台用于炼丹的服务器,但是只能在内网访问。我在家里使用笔记本也想连接到远程的服务器中,这时我们应该怎么办呢。

答案是我们需要一台具有公网ip的服务器作为中继,使用autossh将公网服务器作为代理服务器。假设公网服务器为主机A,内网炼丹炉为主机B,我们的笔记本为C则

主机B上的操作

将主机B上的公钥拷贝到公网主机C实现B对C的免密登录(具体参考《ssh设置免密登录》),在主机B上执行autossh命令(可以在screen环境下执行)

screen -S reverse_proxy

-M是公网主机echo的地址,9999是公网服务器的转发端口,第一个22是B主机ssh端口,-p 后面是外网主机ssh端口,最后一个参数是公网主机远程登录地址。使用该命令时保证公网主机5555, 9999端口都是空闲状态。(这两个端口可以改成任意空闲端口)

主机A上操作

主机A此时可以直接通过ssh访问公网主机的9999端口访问到B主机的终端,具体操作为

ssh -p 9999 username@remote-server

验证登录成功后,我们在vscode中配置A服务器的ip,和转发端口后就可以连接我们的内网主机了。

功能展示

连接加载速度超快,与本地体验完全相同的远程调试。

无需配置,直接运行远程的jupyter notebook。而且jupyter notebook还支持自动补全和调试功能,比原生的notebook更加强大。

ac0751c21ef575858623c600787a230c.png

 「5分钟学Python」建立了读者交流群,大家可以添加管理员微信进行加群

vscode remote 第三方库_使用VSCode进行远程炼丹_第6张图片

扫描添加好友

回复【学Python】获取入门电子书


【往期阅读】

腾讯年终奖刷屏了...

《庆余年》是如何被盗版的?

微信又双叒更新7.0.10,除了黑暗模式,还有这些实用功能!

vscode remote 第三方库_使用VSCode进行远程炼丹_第7张图片

a53031b2030721c37ba857f93554e721.png

点「在看」的人都变好看了哦

你可能感兴趣的:(vscode,remote,第三方库,vscode,逗号不换行)