VSCode进行远程服务器代码调试运行免密码秘钥设置(Remote Development)常用问题解决(permissions are too open等)
Posted 呆呆象呆呆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
# 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。
2、安装vscode和插件remote development
2.1 在本地安装完vscode
2.2 安装remote development插件
点击相应插件的install即可
安装完毕后侧边栏会出现新的图标: 我这里已经安装完了大家应该可以有的
3、 VScode配置
安装完插件后左下角会出现一个绿色的图标
点击选择会在命令窗口弹出几个选项。 选择 SSH | Remote-SSH:Open Configuration File…
当然安装完成后,vscode左侧会多出一个菜单栏,我们点击配置按钮也可以到这一步
然后针对这几个文件, 选择当前用户目录下的ssh配置文件进行配置
输入的服务器对应的ip和端口即可, USER处填写你的用户名
保存即可,侧边栏就会出现你的服务器信息 host后面是服务器的名字
4、远程连接
点击这个文件夹的标记就可以远程连接,在菜单栏命令中根据提示输入密码,就可以了
左下角出现这个标记的时候就算是顺利链接了
备注:服务器不能联网问题的解决
因为在连接过程中,初始化链接中会在服务器更新下载一些服务文件,如果服务器不能联网,这些文件下载超时,我们就不能像普通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的开关
通过这个方式打开配置文件
检查这几个配置
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 错误问题解决
LAST、参考文献
VSCode远程开发:Remote Development -SSH配置实录
以上是关于VSCode进行远程服务器代码调试运行免密码秘钥设置(Remote Development)常用问题解决(permissions are too open等)的主要内容,如果未能解决你的问题,请参考以下文章