vscode使用ssh远程linux可视化开发环境搭建

2023-11-17

  最近一直在做服务引擎开发,编译都是在服务器linux环境中进行。每次调试使用gdb修改使用vim贼麻烦。最后找了下可以使用vscode图形化界面进行远程开发调试。尝试了下,果然好使,故记录下来备下次使用。

1. 搭建vscode远程开发流程

vscode远程开发环境搭建流程很简单,大体来说分四步(如下图):

  1. 主机环境(windows)下安装vscode
  2. 安装主机环境下的插件,永远远程连接等
  3. 远程环境(linux)下安装vscode-server
  4. 安装远程环境的插件,用于开发调试等
    请添加图片描述

  明白了这个搭建流程,可以更好的理解每一步的作用。下面的操作都是围绕这四个步骤展开。

2. 在线搭建环境

  1. 本地环境下载一个vscode安装

  2. 在插件市场中安装连接远程服务器的插件

    Remote-SSHRemote - SSH: Editing Configuration Files

    该插件安装完成vacode左侧栏会多一个电脑的图标
    请添加图片描述

  3. 连接远程环境

  3.1. 配置服务器环境 请添加图片描述

  如上图,打开远程插件,远程连接就弹出远程来连接配置文件。

请添加图片描述请添加图片描述
  如上图可以看到配置文件包含如下几个属性

>Host:服务器名称
>
>HostName: 服务器ip
>
>Uer:登录用户名
>
>Port: ssh默认是22端口,如果不确定是否为22可不写。	

  3.2. 连接服务器

  完成上述步骤,重新进入vscode打开远程插件,可以看到刚刚添加的服务器设备。连接服务器,需要选择服务器系统,输入密码就可以打开要操作的服务器文件夹。
请添加图片描述请添加图片描述
  选择要打开的文件夹,就可以可视化编辑操作。
请添加图片描述  注意:连接服务器的时候需要等待一会,这期间服务器会根据本地的vscode版本,自动下载安装vscode-server。并和客户端连接。可以发现在服务器的~/文件家中生成了一个 .vscode-server或.vscode-server-insiders文件夹(根据服务器安装的vsCode类型而定)

  1. 服务器环境安装插件

    ​ 由于要进行编程开发,需要安装对应的帮助插件,如我开发c++ ,需要安装C/C++插件。

  之前安装的插件在主机环境中,本地可用。vscode-server的环境和本地环境相互独立,需要在各自的环境里安装插件才可使用。远程开发使用的是vscode-server环境里的插件。所以需要单独安装。在有网络的环境里给vscode-server安装插件和vscode一样从插件市场安装。
请添加图片描述
  插件安装完就可以愉快的跨平台可视化开发了。

3. 离线搭建环境

  有网络的时候安装比较简单,但是很多公司在内网开发,不能访问外网.无法自动下载安装.这时候需要我们离线安装.其实质是手动下载对应的服务器和插件进行手动安装.整个流程也是和上面一样,步骤可参照在线安装:

  1. 下载安装vscode

    ​ 正式版(stable)vscode下载: https://code.visualstudio.com/

  2. 下载安装插件
      官方插件下载地址: https://marketplace.visualstudio.com/VSCode
      进入插件官网输入remote查找插件,下载Remote-SSHRemote - SSH: Editing Configuration Files,
    请添加图片描述

  下载完插件进行手动安装插件,手动安装插件流程如下,选择上一步下载的插件就能安装.

请添加图片描述

  1. 下载安装vscode-server

  此时本地主机环境的vscode已经配置完成,在安装 vscode-server之前先使用vscode远程连接下服务器 .没有网络远程连接肯定失败.但是会在服务器中生成.vscode-server或.vscode-server-insiders文件夹.

  在线安装的时候介绍了,远程连接的时候服务器会自动下载安装vscode-server,由于无法连接网络.所以下载失败.但是创建好了对应版本号的文件夹.可以看到~/vscode-server/bin下有个id命名的文件夹.

请添加图片描述

  取这个id可以下载到对应版本的vscode-server.使用id替换下面链接中的ID

stable 版本 VsCode : https://update.code.visualstudio.com/commit:ID/server-linux-x64/stable
insiders 版本 VsCode : https://update.code.visualstudio.com/commit:ID/server-linux-x64/insider

  将下载的包拷贝到~/vscode-server/bin/id/文件夹下,解压.

  到此完成了离线vscode-server的安装 ,可进行远程连接.

  1. 下载安装vscode-server插件

    1. 进入插件官网下载对应插件,拷贝到服务器,手动安装插件,参考主机环境插件安装 .

    2. 照样给和服务器一样可联网的服务器,在线安装vscode-serve和对应插件, 手动考拷贝~/vscode-serve文件夹到内网服务器.若只想拷贝插件可复制~/vscode-serve/extensions即可.

请添加图片描述

4. ssh免密登录,设置白名单

  为了避免每次登录输入密码,可将主机公钥添加到服务器白名单中.
  主机公钥使用git生成.将公钥复制到服务器认证文件authorized_keys中,便可实现每次登录自动验证.

cd ~
mkdir .ssh
mv id_rsa.pub .ssh
cd .ssh
cat id_rsa.pub >> authorized_keys
sudo chmod 600 authorized_keys
service sshd restart

5. 参考文档:

  1. https://mp.weixin.qq.com/s?__biz=MzU3MzkzMzEyMg==&mid=2247483742&idx=1&sn=16071b0444ec679f9617407249045b4c&scene=21#wechat_redirect
  2. https://mp.weixin.qq.com/s/JcfHSQDdhR0BM93M1sBCdA
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vscode使用ssh远程linux可视化开发环境搭建 的相关文章

  • 通过 Paramiko SSH 的 SQLAlchemy

    我的服务器上有一个数据库 我需要通过 SSH 访问该数据库 现在我通过使用命令行来获取数据来处理数据库 import paramiko ssh paramiko SSHClient ssh set missing host key poli
  • 如何在 AWS 上设置无密码 ssh

    如何在 AWS 集群上的节点之间设置无密码 ssh 以下设置无密码身份验证的步骤已针对 Centos 和 Ubuntu 进行了彻底测试 假设 您已经可以访问您的 EC2 机器 可能正在使用 pem 密钥 或者您拥有具有 root 权限的 u
  • 无法通过 SSH 连接到 openshift

    我在通过 SSH 访问 Openshift 时遇到问题 我仍然可以通过 Git 将代码推送到 Openshift 但是 当尝试通过 SSH 连接到 Openshift 时 服务器被拒绝 并显示错误 没有可用的受支持的身份验证方法 服务器发送
  • 在 Python 中使用 Paramiko 模块切换到 root 用户时出现“必须从终端运行”

    我正在尝试通过 Python 脚本自动执行任务 这个想法是以普通用户身份登录 然后发送su命令并切换到 root 帐户 我无法直接以 root 身份登录的原因是SSHD不允许 root 登录 这是我所拥有的 ip 192 168 105 8
  • Git - 远程:致命:你在一个尚未诞生的分支上

    我正在尝试设置一个钩子来从我的桌面推送到我的服务器 这在过去已经工作了无数次 但现在我在设置新网站时遇到错误 remote fatal You are on a branch yet to be born 我一如既往地完成了与命令相同的系列
  • 有没有办法使用 Paramiko 和 Python 来获取您连接的 SSH 服务器的横幅?

    有没有办法使用 Paramiko 和 Python 来获取您尝试连接的 SSH 服务器的横幅 我正在处理许多机器的超安全服务器设置过程 密码是通过预定义的密钥生成的 该密钥与 SSH 横幅一起打印出来 我可以访问将为我提供密码的实用程序 但
  • python paramiko 模块中长时间运行的 ssh 命令(以及如何结束它们)

    我想运行一个tail f logfile使用 python 的 paramiko 模块在远程计算机上运行命令 到目前为止 我一直在尝试以下方式 interface paramiko SSHClient snip the connection
  • 从 Bash 调用的 Expect 脚本的退出状态代码

    我制作了一个 Bash 脚本 它使用 Expect 脚本来自动进行 ssh 登录 该脚本连接到多个服务器并运行一些命令 bash 脚本会提示输入一次登录凭据 我想合并一个功能 其中如果第一个服务器登录失败 脚本将终止 以避免脚本检查下一个服
  • 如何在 Eclipse 中使用 ssh 隧道设置 Subversion?

    我有一个远程服务器 在非标准 ssh 端口上托管我的 subversion 存储库 我想使用 Eclipse 的 subclipse 插件作为客户端来访问 SVN 存储库 我可以使用 svn specialssh 来访问存储库 其中spec
  • gitosis 要求输入密码

    我已经按照以下说明设置了 gitosis 服务器here http scie nti st 2007 11 14 hosting git repositories the easy and secure way 它对于初始用户来说效果很好
  • 如何为函数启用 bash 自动完成功能?

    我已经阅读了关于 bash 自动完成的教程bash补全简介 http www debian administration org article 316 An introduction to bash completion part 1我正
  • Capistrano 和 GitHub Private Repo – 权限被拒绝(公钥)

    我继承了一个托管在 Linode 上的 Rails 项目 之前的开发人员使用 BitBucket 存储库以及 Capistrano 进行部署 我已经在 GitHub 上设置了一个私人存储库 并且正在尝试让 Capistrano 配方发挥作用
  • 与 ssh2_connect() 断开连接

    我已经使用 ssh2 连接ssh2 connect到服务器 但我没有看到任何方法在联机帮助页中 http php net ssh2 connect我应该如何结束连接 我不太喜欢在断开连接之前等待脚本结束 我可以用吗fclose 这听起来不对
  • 如何配置 Ansible 跳过两个堡垒主机?

    我想编写一个 Ansible 剧本 使用 Ansible 2 7 5 它将在到达目标服务器之前跳过两个主机来执行诸如安装 docker 和 python 等操作 我能够让 Ansible 通过一台主机跳转到server1通过将其添加到我的h
  • PHP shell_exec 使用 ssh 运行 shell 脚本

    我有一个 shell 脚本 使用 ssh 和密钥连接到另一台机器 因此它不需要用户名和密码 当我从命令行运行这个脚本时 它工作正常 但是当我从 php shell exec 运行这个脚本时 它不起作用 如果我与 PHP 建立 ssh 连接并
  • Mac OS X 中 Bash 脚本中的 SFTP 命令

    我需要使用 SFTP 和 SSH 从 Mac 主机将文本文件传输到远程 PC freeSSH 这两个连接在本地网络中 那么有没有办法从 Bash 脚本内部运行 SFTP 命令 使用提供的用户名和密码 我已经尝试过一些脚本expect 但我没
  • SSH 无法对 [email protected] 进行身份验证

    最近 我在 Github com 上注册了一个免费计划 我按照他们的说明生成 ssh 密钥以添加到我的帐户 然而 当我尝试ssh v email protected cdn cgi l email protection 我收到此错误 deb
  • Composer 用于下载私有 GitHub 存储库

    我无法使用 Composer 下载 github 私人存储库 php composer phar update 我收到以下错误 The https api github com repos company private1 https ap
  • 无法从 Sourcetree 拉取 Git 远程存储库

    我生成了 ssh 密钥并配置了我的 git 和 SourceTree 我可以 git pull 并从 Git bash 执行其他操作 注意 我在 bashrc 中添加了以下内容以使其正常工作 eval ssh agent ssh add 然
  • 如何用python脚本控制TP LINK路由器

    我想知道是否有一个工具可以让我连接到路由器并关闭它 然后从 python 脚本重新启动它 我知道如果我写 import os os system ssh l root 192 168 2 1 我可以通过 python 连接到我的路由器 但是

随机推荐

  • java 线程中断 阻塞_java – 线程中断没有结束阻塞调用输入流...

    我正在使用RXTX从串口读取数据 读取是在以下列方式生成的线程内完成的 CommPortIdentifier portIdentifier CommPortIdentifier getPortIdentifier port CommPort
  • 如何使用excel批量导入数据到数据库?看这一篇就够了!超详细

    应用场景 当我们遇到要批量新增数据库条数的时候 1 你可以写一个接口去用excel去导入 可以自动化 但是前提是你知道你要新增的表和流程才可以 2 可以用excel直接进行数据库导入 excel导入数据库 新增 把你的字段都打上 是全部字段
  • kubernetes08(kubernetes的资源对象)

    文章目录 kubernetes08 kubernetes的资源对象 一 引子 二 kubernetes资源 一 kubernetes的资源对象作用 二 kubernetes的资源对象分类 三 kubernetes资源清单 一 kubenet
  • python中字符串拼接join

    python中字符串处理函数有 str join seq 拼接字符串 和os path join 返回拼接后的字符串 一 str join sequenue join函数 python下拼接字符串可通过join函数实现 使用方法 strin
  • 非法输入产生的异常处理

    闰年测试中的非法输入 一 问题描述 本篇博客讲解的是一个关于闰年测试的例子 首先科普一下什么是闰年 闰年 Leap Year 是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的 补上时间差的年份为闰年 闰年包括在公历
  • 03-----C/C++ 实现可变参数的函数

    头文件 C include
  • 有关HDX-介绍而已

    what is HDX First and foremost HDX is not a feature or a technology it is a brand Short for High Definition Experience H
  • HTTPweb服务器——HTTP整体设计框架

    我们整个的项目采用B S模式 通过浏览器发送HTTP的get方法和post方法 然后server进行响应 这样最终通过html看到我们所显示的最终的效果 另外 为了支持并发 我们采用了多线程的结构 1 进行创建监听套接字 和其他socket
  • Android button靠右侧显示

    注 要在包含button的父布局中设置
  • SpringCache 使用Redis作为缓存技术的使用

    介绍 Spring Cache是一个框架 实现了基于注解的缓存功能 只需要简单地加一个注解 就能实现缓存功能 大大简化我们在业务中操作缓存的代码 Spring Cache只是提供了一层抽象 底层可以切换不同的cache实现 具体就是通过Ca
  • Unity地图设计和关卡顺序解锁以及分支解锁最好理解的实现(PlayerPrefs.GetInt与PlayerPrefs.SetInt应用及内容查询)

    Unity地图设计和关卡解锁最好理解的实现 PlayerPrefs GetInt与PlayerPrefs SetInt应用及内容查询 这里说一种类似于森林冰火人的解锁机制 也就是中心的关卡先解锁 中间的通过了四周解锁一个 然后一个接一个解锁
  • 微信小程序密码显示隐藏(小眼睛)

    一 效果图 微信小程序密码显示隐藏 小眼睛 二 代码 wxml
  • 如何使用vs将现有的项目或者文件夹(尤其是多层目录的)添加到项目中

    困扰我这么久的问题 哎 真心弱爆了 1 将现有项目或文件夹拷贝到指定目录下 2 解决方案右上有个显示所有文件的按钮 然后选中所有要添加的文件 右击 选择包含到项目中即可
  • react 函数组件props的使用

    函数组建的props 1 如何给组件传递数据 给组建的标签添加属性即可 2 函数组件通过props参数就能接受 也可以通过解构props function App props return div h1 我是App组件 props name
  • 层次分析法基本介绍

    层次分析法 1 主要解决哪类问题 评价类 评价类问题要明确 评价的目标是什么 为达到这个目标的可选方案 评价的准则或标准是什么 2 原理 思路是啥 eg 小明高考完如何选择一个学校 如何选择一个旅游目的地 可以思考到 并得到表格 定义指标
  • PDF批量替换文字器免费版

    安装教程 1 下载解压后 得到文件 pdfreplacer exe 双击进入安装向导 2 选择语言 完成后确认进入下一步 3 下一步 4 系统默认安装在C盘 单击浏览可自定义选择安装路径 随后下一步 5 是否创建桌面快捷方式 建议选上 下一
  • PCB板基础知识

    制作机器人的时候不可避免的会用到PCB板 之前对它的认识只停留在会用这个层面 最近学习了PCB板的制作 发现了之前很多不知道的知识 于是整理出来和大家分享 1 过孔 双层板的连接通道 这个是之前最摸不着头脑的环节 拿到一个PCB就会发现上面
  • 拼接滚动地图-Quick-cocos2dx

    lua里面class的使用 一个class的使用 class方法用于创建类 其实就是lua表 传入类名和父类 父类为方法或表 class使用 第一次用A class fun 第二次用a A new 示例 local LevelView cl
  • SpringBoot之@Slf4j的使用详解

    先简单的来说 作用 Slf4j是在SpringBoot基础上Lombok为我们提供的日志输出注解 使用 先引入lombok依赖 将注解添加在类上 然后就可以使用log info 进行日志的输出打印 Slf4j注解填在当前类上相当于Sprin
  • vscode使用ssh远程linux可视化开发环境搭建

    目录 1 搭建 vscode 远程开发流程 2 在线搭建环境 3 离线搭建环境 4 ssh免密登录 设置白名单 5 参考文档 最近一直在做服务引擎开发 编译都是在服务器linux环境中进行 每次调试使用gdb修改使用vim贼麻烦 最后找了下