VSCode进行远程服务器代码调试运行、免密码秘钥设置(Remote Development)、常用问题解决(permissions are too open等)

0、前言

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

1、远程和本机的环境配置

因为vscode的远程操作主要是依托于ssh服务
所以需要服务器可以支持ssh,一般都是linux自带的,但是可以测试一下,如果没有ssh的话可以通过如下进行一下安装

1.1 远程主机安装ssh-server

image-20210629181856486

# Linux 系统
sudo apt-get install openssh-server

1.2 本地主机安装ssh-client

一般如果安装过xshell或putty等工具的就不需要单独安装了,可以在cmd中输入ssh查看本机是否安装了ssh。

# Linux 系统
sudo apt-get install ssh  或者 sudo apt-get install openssh-client

windows 系统中下载安装 OpenSSH

image-20210629181908118

2、安装vscode和插件remote development

2.1 在本地安装完vscode

image-20210629181842833

2.2 安装remote development插件

image-20210629181819567

点击相应插件的install即可

安装完毕后侧边栏会出现新的图标: 我这里已经安装完了大家应该可以有的

image-20210629181806983

3、 VScode配置

安装完插件后左下角会出现一个绿色的图标

image-20210629181727813

点击选择会在命令窗口弹出几个选项。 选择 SSH | Remote-SSH:Open Configuration File…

image-20210629181930754

image-20210629181944511

当然安装完成后,vscode左侧会多出一个菜单栏,我们点击配置按钮也可以到这一步

image-20210629181957773

然后针对这几个文件, 选择当前用户目录下的ssh配置文件进行配置

image-20210629182011790

输入的服务器对应的ip和端口即可, USER处填写你的用户名

image-20210629182032391

保存即可,侧边栏就会出现你的服务器信息 host后面是服务器的名字

4、远程连接

点击这个文件夹的标记就可以远程连接,在菜单栏命令中根据提示输入密码,就可以了

image-20210629182044900

image-20210629182057968

左下角出现这个标记的时候就算是顺利链接了

image-20210629182110696

备注:服务器不能联网问题的解决

因为在连接过程中,初始化链接中会在服务器更新下载一些服务文件,如果服务器不能联网,这些文件下载超时,我们就不能像普通ssh一样链接上服务器了,下面提供解决办法

从VSIX安装

您可以手动安装打包在.vsix文件中的VS代码扩展。在扩展视图命令下拉菜单中使用Install from VSIX …命令,或者在命令面板中使用VSIX …中的扩展:安装命令,指向该.vsix文件。

您还可以使用VS Code --install-extension命令行开关进行安装,从而提供.vsix文件的路径。

code --install-extension myextension.vsix

您可以--install-extension在命令行上多次提供一次安装多个扩展。

在按照上面的远程连接配置步骤后链接超时显示的安装失败的文件信息,用这个备注里的方式进行安装就可以完成离线安装使用了

https://marketplace.visualstudio.com/vscode

5、免密码输入设置

如果觉得每一次输入密码特别繁琐的话 可以设置免密码输入的秘钥链接,下面介绍一下操作步骤

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

在CMD输入

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) 让你输入一个密钥的密码,如果不输入则留空;回车生成公私钥完毕 。(这里建议密码留空)

5.2 手动上传公钥文件

将本地的公钥文件上传到服务器上,并添加到 authorized_keys 文件中。

scp %USERPROFILE%\.ssh\id_rsa.pub %REMOTEHOST%:~/tmp.pub 

%USERPROFILE% : C:\Users\xxx

%REMOTEHOST% :username@192.168.1.xxx

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

touch ~/.ssh/authorized_keys

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

cat ~/tmp.pub >> ~/.ssh/authorized_keys
rm -f ~/tmp.pub

5.3 更改文件夹权限

将.ssh目录的权限为700

将authorized_keys目录的权限为600

chmod 700 ~/.ssh/
chmod 600 ~/.ssh/authorized_keys

5.4 设置私钥

打开刚才的配置文件,在你准备服务器位置下面,填好私钥的路径,这样就可以免密登录啦

6、备用问题解决

如果发现连接不上的问题,参考如下几个链接

6.1 首先检查vscode是否开启了ssh的开关

通过这个方式打开配置文件

image-20210629191334753

检查这几个配置

image-20210629191044170

Visual Studio Code User and Workspace Settings
Visual Studio Code Remote Development Troubleshooting Tips and Tricks

6.2 报错出现ssh “permissions are too open” error

【实践与问题解决34】VSCODE出现ssh “permissions are too open” error 链接远程服务器不好用的报错问题解决_呆呆象呆呆的博客-CSDN博客

6.3 用了远程服务器之后编写服务器上的代码出现各种Import “XXX“ could not be resolved

【实践与问题解决33】vscode链接远程服务器,Import “XXX“ could not be resolved的问题解决_呆呆象呆呆的博客-CSDN博客

6.4 Windows 下 VSCode 使用 SSH 连接报 Bad owner or permissions on C:\Users\Administrator/.ssh/config 错误问题解决

win10在远程连接配置中出现Bad owner or permissions on C:\\Users\\Administrator/.ssh/config 报错_呆呆象呆呆的博客-CSDN博客

LAST、参考文献

VScode Remote 远程开发与调试

VSCode:Remote-SSH配置实录

VSCode远程开发:Remote Development -SSH配置实录

使用vscode进行远程炼丹

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值