资讯详情

VSCode使用Remote 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密钥

目的:

1.使用以下命令生成 SSH 公钥文件。如果已经生成,可以直接使用,跳到步骤2。

# 方法一 ssh-keygen  # 方法二,参考使用Git生成密钥 ssh-keygen -t rsa -C "youremail@example.com" 

2、一般生成的密钥文件,路径为:C:\Users\user\.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 
  • 方法二:已使用 SSH 连接到服务器的方式

(2)进入 .ssh 使用以下命令生成目录 authorized_keys 文件。

cat id_rsa.pub > authorized_keys 

4、在 cmd 窗口,再次尝试如下,可以直接连接到服务器,无需密码。


如果已使用 SSH 将方法连接到远程服务器,小二分享一种更简单的方法:

1、在 .ssh 夹下文件,新建 authorized_keys 文件;

2、将 id_rsa.pub 文件中的内容全部复制到 authorized_keys 文件即可;

2.4 添加配置文件

目的:

点击左侧 远程资源管理器 点击右上角的小齿轮(设置)

2.在弹出窗口中选择第一个 config 打开文件,参考下图填写相应信息

(1)参考上述配置,解释如下

Host <远程主机名称>     HostName <远程主机IP>     User <用户名>     Port <ssh端口,默认22>     IdentityFile <本机SSH私钥路径>     ForwardAgent yes <VSCode 不用担心自己加的> 
  • 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 自己添加的,不用管>

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

可直接参考这篇文章:VSCode Remote 报错,无法连接??

3.3 扩展ssh连接失败

SSH 连接远程服务器失败,有如下错误提示:

could not establish connection to XXX, the path argument must be of type string, received type undefined。

问题原因:找不到 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:443

at 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)进入插件选项卡,点击 ··· ,选择 ,选中刚刚下载的文件;

(3)最后等待安装完毕,点击重载窗口,就大功告成了。

参考资料

1、vscode 解决正在下载程序包“C/C++ language components (Linux / x86_64)” 失败引起的符号找不到问题_chenwr2018的博客-CSDN博客(https://blog.csdn.net/chenwr2018/article/details/115774007)

2、Releases · microsoft/vscode-cpptools (github.com)(https://github.com/microsoft/vscode-cpptools/releases)

4 总结

1、详细总结 VSCode 搭建远程开发环境的过程;

2、对插件的安装、Remote SSH 相关问题做了补充完善,相对具有参考意义;

标签: 管连接用连接器025重载连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台