问题背景:
在开发或者做实验的过程中,我们经常会用到远程服务器或者Github的项目,而我服务器上的项目只能在Jupyter Notebook上编写(或许可以在其他IDE上写,但我不知道)。而我们喜欢用的IDE比如Pycharm、轻量级的VScode,如何在本地的IDE上使用服务器的项目且快速、方便地写代码呢?这就是今天要详细介绍的VScode配置免密ssh+remote,一旦连接成功,我们就可以在本地自己喜欢的IDE上操作远程服务器端的项目了。
环境准备:
1.Win10
2.VScode(VSCodeUserSetup-x64-1.36.1)友情提供下载地址VScode官网下载。强烈推荐VScode,比Pycharm好用得多得多得多,因为它是轻量级的!下载只需要几十M!
3.有一台远程可用的服务器
配置步骤:
1.在本地配置服务器的免密登录
这样做的目的是,每次用VScode打开远程服务器的时候,就不用输入一些繁琐的IP、密码等一类的信息了。
1)cmd打开命令提示符
2)在cmd下输入
ssh-keygen -t rsa -b 4096
生成SSH密钥和公钥(如下图红框所示)
(我记得此后连敲三下Enter就完成了,密钥id_rsa和公钥id_rsa.pub文件都默认保存在(C:\User\用户/.ssh)文件夹下)
3)将公钥文件id_rsa.pub传到远程服务器的authorized_keys文件中
在cmd下输入⬇️:
SET REMOTEHOST=your-user-name-on-host@host-fqdn-or-ip-goes-here scp %USERPROFILE%\.ssh\id_rsa.pub %REMOTEHOST%:~/tmp.pub ssh %REMOTEHOST% "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat ~/tmp.pub >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && rm -f ~/tmp.pub"
* 解释一下:
第一行作用相当于设置变量名,REMOTEHOST设置格式为“你在服务器的用户名@服务器的ip地址”
例如我在服务器的用户名是“lpy”,远程服务器的ip为49.52.10.120,那么我的第一行代码就是
第二行scp命令的详细知识可以参考scp使用说明,它是Linux系统下基于ssh登陆进行安全的远程文件拷贝命令。知道这条命令的作用之后,我们就能知道前半部分是本地公钥文件的位置,后半部分是远程服务器端当前目录下名为tmp.pub的文件,我们要把本地的公钥拷贝到这个临时文件里。
%USERPROFILE%就是本地主机的用户名,在C:\Users这里找,%REMOTEHOST%是我们刚刚已经SET过的哦,就不用管它啦。
至此我们在命令提示符这里的工作已经全部完成啦,是不是很简单!!接下来我们继续哦~
2.VScode上的配置
1)首先打开已经下载好的VScode,下载插件Remote-SSH,步骤如下。
插件下载完毕后,我们可以发现,功能列多了一个图标
2.同时按Ctrl+Shift+p显示如下
我们选第一行的内容得到下面的页面,继续选择第一行内容
我们可以得到config文件,内容如下
Host name-of-ssh-host-here User your-user-name-on-host HostName host-fqdn-or-ip-goes-here
举个例子,我的设置为
保存即可(现在可以看到你配置的机器啦 csffm2)
3)点击红框处的图标
等待VS Code建立连接后就可以通过File > Open或File > Open Workspace直接打开远程机器上的文件或文件夹进行开发调试啦~
左下角表面我已经连接成功
中间方框就是我服务器上的项目,完成!Yeap!!补充一点就是,师兄说VScode这里建立的是服务器端的一个映射,也就是说这里的环境是服务器端的,你在服务器端下载的所有开发包,在VScode这里都是可以用的,而且如果你之后还会在VScode下载其他包的话,服务器端也是会有的。
参考链接:https://code.visualstudio.com/docs/remote/troubleshooting#_installing-a-supported-ssh-client
VScode里面,若左边工具栏没有了小电脑的标志最好的解决办法就是uninstall后install,因为插件很小所以这样的操作是最快最省事儿的!Python也是,如果解释器找不到了就重装一下。
到此这篇关于Win10下配置VScode远程开发ssh-remote(免密登录)的文章就介绍到这了,更多相关vscode ssh-remote配置免密登录 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!