VSCode使用Remote SSH连接远程服务器
发布时间:2022-06-21 09:01:31 所属栏目:系统 来源:互联网
导读:1 前言 最近在搭建一套 VSCode 的远端开发环境,主要想解决 C/C++ 代码不能 100% 跳转的问题。 闲言少叙,安装过程奉上。 2 操作步骤 2.1 安装 SSH 由于我们是使用 SSH 连接远程服务器,因此 Windows 需要支持 SSH 。 可以通过安装 Git 来获取 SSH 功能,如
|
1 前言 最近在搭建一套 VSCode 的远端开发环境,主要想解决 C/C++ 代码不能 100% 跳转的问题。 闲言少叙,安装过程奉上。 2 操作步骤 2.1 安装 SSH 由于我们是使用 SSH 连接远程服务器,因此 Windows 需要支持 SSH 。 可以通过安装 Git 来获取 SSH 功能,如何验证?使用 Win + R ,输入 cmd 打开控制窗口,直接输入 ssh ,如下提示,则代表 SSH 已经安装成功; 2.2 添加插件 使用 VSCode 最方便的一点,就是有很多插件可供选择。 本次我们需要使用 Remote - SSH 插件,长这个样子,不要搞错了 安装完插件后,在侧边栏可以看到 “远程资源管理器” 图标。 2.3 配置SSH密钥 目的:将本机添加到远程服务器连接白名单,让服务器知道是已认证的电脑在连接。过程类似于 GitHub 网站添加本地电脑的 SSH 公钥。 1、使用如下命令,生成 SSH 公钥文件。如果已经生成,则可直接使用,跳到步骤二。 复制 # 方法一 ssh-keygen # 方法二,参考使用Git生成密钥 ssh-keygen -t rsa -C "youremail@example.com" 1. 2. 3. 4. 5. 2、一般生成的密钥文件,路径为:C:Usersuser.ssh ,找到公钥文件 id_rsa.pub ,复制到远程服务器 根目录 的 .ssh 文件夹中。 (1)根目录,不一定非要是 /.ssh 路径,可以是自己的用户目录,类似这样:/zhaochen/.ssh。 (2).ssh 文件夹没有怎么办?新建一个文件夹,命名为 .ssh 即可。同时要确认远程服务器是否支持 SSH ,如果此时正是通过 SSH 方式连接的,那肯定是支持了。 3、生成 authorized_keys 文件。这样后续在使用 Remote 插件时,不需要密码,就可以直接登录到服务器。 (1)连接到远程服务器 方法一:通过 Windows 的 cmd 命令框,使用如下命令 + 密码,连接到远程服务器 复制 # 标准命令,输入后会提示输入密码 ssh username@ip -p port # 示例,注:SSH默认为22端口 ssh zhaochen@192.168.1.1 -p 22 1. 2. 3. 4. 5. 方法二:已经使用 SSH 方式连接到服务器 (2)进入 .ssh 目录,使用如下命令,生成 authorized_keys 文件。 复制 cat id_rsa.pub > authorized_keys 1. 4、在 cmd 窗口,再次尝试如下,可以看到无需密码,直接连上服务器 如果已使用 SSH 方式连接到远程服务器,小二再分享一种更简单的方法: 1、在 .ssh 文件夹下,新建 authorized_keys 文件; 2、将 id_rsa.pub 文件中的内容全部复制到 authorized_keys 文件即可; 2.4 添加配置文件 目的:配置 VSCode 连接远程服务器的一些基本信息。 1、点击左侧的 “远程资源管理器” 图标,点击右上角的小齿轮(设置) 2、在弹出来的窗口中,选择第一个 config 文件打开,参考下图,填写对应信息 (1)参考上述配置,释义如下 复制 Host <远程主机名称> HostName <远程主机IP> User <用户名> Port <ssh端口,默认22> IdentityFile <本机SSH私钥路径> ForwardAgent yes <VSCode 自己添加的,不用管> 1. 2. 3. 4. 5. 6. Host :连接的主机名称,可自定义; Hostname :远程主机的 IP 地址; User :用于登录远程主机的用户名; Port :用于登录远程主机的端口,SSH 默认为 22 ; IdentityFile :本地的私钥文件 id_rsa 路径; (2)如果需要连接多个远程服务器,可参考如上内容,配置多个即可; 复制 Host <远程主机名称1> HostName <远程主机1 IP> User <用户名1> Port <ssh端口,默认22> IdentityFile <本机SSH私钥路径> ForwardAgent yes <VSCode 自己添加的,不用管> Host <远程主机名称2> HostName <远程主机2 IP> User <用户名2> Port <ssh端口,默认22> IdentityFile <本机SSH私钥路径> ForwardAgent yes <VSCode 自己添加的,不用管> 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 2.5 连接测试 1、进入 “远程资源管理器” 选项,右键点击主机名; 2、选择一种方式,连接到远程服务器,进行测试; 3、如果连接成功,左下角则会显示当前已连接的主机名。 参考资料 1、VS Code Remote SSH配置 - 知乎 (zhihu.com)(https://zhuanlan.zhihu.com/p/68577071) 3 问题汇总 3.1 插件安装 当我们搭建好 Remote SSH 环境后,VSCode 支持在 远程服务器 安装插件。 此时就可以根据自己的开发习惯,将插件安装到不同地方了。 3.2 连接报错 如果错误提示如下: 复制 could not establish connection to “XXX“.Connecting was canceled. VScode remote '_workbench.downloadResource' failed vscode could not establish _workbench.downloadResource 1. 2. 3. 4. 5. 可直接参考这篇文章:VSCode Remote 报错,无法连接?? 3.3 扩展ssh连接失败 SSH 连接远程服务器失败,有如下错误提示: 复制 could not establish connection to XXX, the path argument must be of type string, received type undefined。 1. 问题原因:找不到 SSH 可执行程序。 解决方法如下: 1、按下 F1 ,输入 Remote-SSH: Settings ,找到 remote.SSH.path ,修改此路径为本地 Git 安装程序中的 ssh.exe 文件即可; 2、参考下图: 参考资料 1、Visual studio code 扩展 ssh 连接失败:The "path" argument must be of type string. Received type undefined_的米-漠石's Blog-CSDN博客(https://blog.csdn.net/mostone/article/details/103023476) 3.4 C/C++环境错误 1、错误截图如下: 2、错误日志如下: 正在更新 C/C++ 依赖项...正在下载程序包“C/C++ language components (Linux / x86_64)” 失败。正在重试... 失败。正在重试... 失败。正在重试...正在等待 8 秒... 失败。正在重试...正在等待 16 秒... 未能下载 https://go.microsoft.com/fwlink/?linkid=2164295在阶段 downloadPackages 失败Error: connect ECONNREFUSED 23.41.74.108:443at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16)如果在脱机环境中工作或反复看到此错误,请尝试从 https://github.com/microsoft/vscode-cpptools/releases 下载预包含了所有依赖项的扩展版本,然后使用 VS Code 中的“从 VSIX 安装”命令来安装它。 3、问题原因:小二猜测,是由于远程服务器脱机使用插件,导致 C/C++ 的扩展安装失败; 4、解决方法,错误日志中已经比较详细。简要描述如下: (1)手动下载 cpptools-linux.vsix 文件,放到远程服务器中;网址:Releases · microsoft/vscode-cpptools (github.com) (2)进入插件选项卡,点击 ··· ,选择 从 VSIX 安装... ,选中刚刚下载的文件; (3)最后等待安装完毕,点击重载窗口,就大功告成了。 (编辑:阳江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


