win10 vscode ssh-remote配置免密登录
原文:https://blog.csdn.net/weixin_40607008/article/details/98471293
问题背景:
在开发或者做实验的过程中,我们经常会用到远程服务器或者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)生成SSH密钥和公钥
(我记得此后连敲三下Enter就完成了,密钥id_rsa和公钥id_rsa.pub文件都默认保存在(C:\User\用户/.ssh)文件夹下)
3)将公钥文件id_rsa.pub传到远程服务器的authorized_keys文件中
-
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,那么我的第一行代码就是
SET REMOTEHOST=lpy@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也是,如果解释器找不到了就重装一下。