使用 SSH 通过 VS Code 连接企业服务器并拉取 Git 仓库代码的指南

news2024/11/14 3:50:25

文章目录

  • 前言
  • 一、SSH 是什么?
    • 1.1 SSH 的主要特性和用途
    • 1.2 SSH 的工作原理
  • 二、 为什么使用 SSH 而不是 HTTPS
  • 三、使用步骤
    • 3.1 生成 SSH 密钥
    • 3.2 配置 VS Code 远程连接
    • 3.3 通过 SSH 克隆 Git 仓库
    • 3.4 安装必要的组件
  • 总结


前言

在现代软件开发中,远程连接版本控制是两个重要的环节。本文将介绍如何在 Daoyou Cloud 平台上注册账号、生成 SSH 密钥、配置 VS Code 远程连接,并通过 SSH 拉取 Git 仓库代码。
在这里插入图片描述


一、SSH 是什么?

SSH,全称 Secure Shell,是一种用于安全远程登录和其他网络服务的协议。SSH 通过加密技术确保数据在传输过程中不会被窃听、篡改或伪造。

1.1 SSH 的主要特性和用途

  1. 安全通信:通过加密技术保护数据传输的安全性,防止数据在传输过程中被窃听或篡改。
  2. 身份验证:使用公钥加密进行身份验证,确保只有经过授权的用户才能访问系统。
  3. 远程登录:允许用户通过网络远程登录到另一台计算机,就像本地登录一样。
  4. 数据传输:SSH 可以安全地传输文件和数据。常用的文件传输工具如 SCP(Secure Copy)和 SFTP(SSH File Transfer Protocol)都是基于 SSH 的。
  5. 端口转发:支持端口转发,通过 SSH 隧道将本地端口的数据转发到远程服务器上,从而访问一些受限制的服务或提高安全性。
  6. 加密隧道:可以创建加密隧道,用于保护任意的网络服务。

1.2 SSH 的工作原理

SSH 的工作原理主要包括以下几个步骤:

  1. 建立连接:客户端向服务器发起连接请求,双方协商使用的加密算法和密钥。
  2. 身份验证:服务器向客户端发送一段随机数据,客户端使用自己的私钥加密后返回给服务器。服务器使用预先存储的客户端公钥进行解密,如果解密成功,则验证通过。
  3. 数据加密:客户端和服务器使用协商好的对称加密算法和密钥对后续的数据进行加密传输。

二、 为什么使用 SSH 而不是 HTTPS

在连接 Git 仓库时,SSH 通常优于 HTTPS,主要原因如下:

  1. 安全性:SSH 使用公钥加密来验证身份,确保只有授权的用户可以访问仓库。HTTPS
    依赖于用户名和密码,安全性较低,尤其是在密码管理不当的情况下。

  2. 无密码认证:使用 SSH 时,用户可以通过 SSH 密钥进行身份验证,而不需要每次都输入用户名和密码。这不仅提高了安全性,也简化了操作。

  3. 防止钓鱼攻击:通过 SSH 连接时,使用的是公钥认证机制,可以有效防止钓鱼攻击。

  4. 访问控制:SSH 提供了更加细粒度的访问控制。管理员可以根据用户的公钥进行权限管理,控制谁能访问什么内容。

  5. 性能:SSH 在某些网络环境中可能表现得更好,因为它是一个持续的会话,而 HTTPS 每次操作都需要重新建立连接。

  6. 防火墙和代理支持:在某些企业网络环境中,HTTPS 可能会受到防火墙和代理服务器的限制,而 SSH 通常不会受到这些限制。

三、使用步骤

3.1 生成 SSH 密钥

在本地机器上生成 SSH 密钥对,以便与 Git 仓库进行安全连接。

  1. 打开命令行(CMD)输入以下命令,里面替换为你自己的个人邮箱,按提示完成密钥对生成过程:
ssh-keygen -t ed25519 -C "your_email@example.com"
  1. 找到生成的公钥pub文件(通常在 C:\Users\YourUsername\.ssh\id_ed25519.pub),打开并复制其中的内容。
  2. 前往右上角的设置 -> SSH/GPG 密钥 -> 增加密钥,粘贴复制的公钥内容(其它git仓库添加ssh密钥的操作都是类似的)

在这里插入图片描述

3.2 配置 VS Code 远程连接

  1. 下载 Remote-SSH 插件:打开 VS Code,进入扩展市场,搜索 Remote - SSH 插件并安装。
    在这里插入图片描述
  2. 连接到远程服务器:安装插件后,VS Code 左侧边栏会多出一个“远程资源管理器”图标。点击 SSH 部分的加号,输入服务器地址(例如:192.168.0.9可以选择自己企业内部服务器的地址),并点击连接在这里插入图片描述
    在远程终端中,再重复上面生成 SSH 密钥的操作,在git里面再添加一个开发服务器的ssh密钥,并将公钥添加到 Git 仓库托管平台的设置中。
    在这里插入图片描述

3.3 通过 SSH 克隆 Git 仓库

打开 VS Code 远程连接后的终端,输入以下命令克隆 Git 仓库拉取代码:

git clone git@git.daoyoucloud.com:daoyoucloud/tachybase.git

在这里插入图片描述

3.4 安装必要的组件

在拉取代码并进行开发时,可能需要安装一些依赖组件npm i,在添加组件时可能会出现canvas无法下载的情况,到 canvas官网🚪 查看对应ubuntu系统的下载命令,可以使用以下命令:

apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev

总结

通过上述步骤,你已经成功配置了 SSH 密钥、连接了远程服务器,并通过 SSH 拉取了 Git 仓库代码。在 VS Code 中进行远程开发,不仅提高了开发效率,还确保了安全性和环境的一致性。SSH 相较于 HTTPS 更安全、更便捷,且适用于复杂的企业网络环境。在实际应用中,掌握 SSH 的使用技巧,不仅能提升开发体验,还能保障项目的安全性。如果有任何疑问,欢迎留言讨论🌹。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1927814.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Sentinel-1 Level 1数据处理的详细算法定义(四)

《Sentinel-1 Level 1数据处理的详细算法定义》文档定义和描述了Sentinel-1实现的Level 1处理算法和方程,以便生成Level 1产品。这些算法适用于Sentinel-1的Stripmap、Interferometric Wide-swath (IW)、Extra-wide-swath (EW)和Wave模式。 今天介绍的内容如下: Sentinel-1 L…

鸿蒙语言基础类库:【@ohos.data.storage (轻量级存储)】

轻量级存储 轻量级存储为应用提供key-value键值型的文件数据处理能力,支持应用对数据进行轻量级存储及查询。数据存储形式为键值对,键的类型为字符串型,值的存储数据类型包括数字型、字符型、布尔型。 说明: 开发前请熟悉鸿蒙开发…

红色文化3D虚拟数字展馆搭建意义深远

在房地产与土地市场的浪潮中,无论是新城规划、乡村振兴,还是商圈建设,借助VR全景制作、虚拟现实和web3d开发技术打造的全链条无缝VR看房新体验。不仅极大提升了带看与成交的转化率,更让购房者足不出户,即可享受身临其境…

前端Vue组件化实践:自定义轮播图组件的探索与应用

在前端开发领域,随着业务逻辑的不断丰富和系统规模的日益扩大,传统的开发方式逐渐暴露出种种弊端。其中,最突出的问题之一便是修改一个小的功能或细节可能导致整个系统的逻辑调整,造成开发效率低下和维护困难。为了应对这些挑战&a…

部署大语言模型并对话

随着人工智能技术的飞速发展,大语言模型(Large Language Models, LLMs)因其强大的语言理解和生成能力而备受关注。OpenWebUI ,原名 Ollama WebUI ,是一款专为大语言模型(LLM)设计的先进 Web 交互…

pdf文件怎么转换为jpg图片?这几种转换方法操作起来很简单!

pdf文件怎么转换为jpg图片?在数字化洪流席卷职场的当下,PDF文档虽一度稳坐信息传输与储存的宝座,却逐渐显露出其在效率与便捷性追求中的疲态,随着技术疆界的不断拓宽,我们愈发深刻地意识到,PDF那复杂的格式…

Python array的特点及使用

1、Python array的特点及使用 1.1、python array为什么只能接收指定类型数据 array 模块提供了一种叫做 array 的数据结构,它表示一块连续的内存空间,所有的元素必须是相同的类型。这是因为在内存中,数组元素存储在连续的位置上&#xff0c…

【256 Days】我的创作纪念日

目录 🌼01 机缘 🌼02 收获 🌼03 日常 🌼04 成就 🌼05 憧憬 最近收到官方来信, 突然发现,不知不觉间,距离发布的第一篇博客已过256天,这期间我经历了春秋招、毕业答辩…

Type-C PD芯片:引领充电技术的新纪元

随着科技的飞速发展,人们对电子设备的依赖日益加深,对充电速度、效率和安全性的要求也越来越高。在这样的背景下,Type-C PD(Power Delivery)芯片应运而生,以其高效、安全、智能的特点,成为了充电…

gorm多表联合查询 Joins方法 LEFT JOIN , RIGHT JOIN , INNER JOIN, FULL JOIN 使用总结

gorm中多表联合查询,我们可以使用Joins来完成,这个Joins方法很灵活,我们可以非常方便的多多表进行联合查询, 我们先来看看这个方法的官方定义和使用示例: Joins方法定义和使用示例 当然我们这里要说的使用方式是官方示…

网络运输层之(2)UDP协议

网络运输层之(2)UDP协议 Author: Once Day Date: 2024年7月14日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章可参考专栏: 通信网络技术_Once-Day的博客-CSDN…

SQL server 练习题2

课后作业 作业 1:自己查找方法,将 homework_1.xls 文件数据导入到 SQLServer 的 homework 数据库中。数据导入完成后,把表名统一改为:外卖表 如下所示: 作业 2:找出所有在 2020 年 5 月 1 日至 5 月 31 …

离散数学,自反和反自反 ,对称和反对称,传递关系 ,复合关系和逆关系 ,关系的闭包

目录 1.自反和反自反 自反性 反自反性 判断关系是自反或是反自反 2.对称和反对称 对称性 反对称性 判断关系是对称或是反对称 3.传递关系 4.复合关系和逆关系 复合关系 逆关系 关系运算的性质 5.关系的闭包 闭包的性质 1.自反和反自反 自反性 反…

适合初创企业的有效 CRM 策略

客户关系管理 (CRM) 是任何企业的重要组成部分,尤其是对于旨在与客户建立牢固而有意义的关系的初创公司而言。实施良好的 CRM 策略不仅可以简化您的销售流程,还可以提高客户满意度和保留率。在本文中,我们将介绍初创公司有效 CRM 策略的关键组…

原生APP外包开发成本的估算

原生APP外包开发成本的估算取决于多种因素。根据经验,原生APP外包开发成本一般在几十万到几百万人民币之间。对于功能复杂、要求高的大型APP,开发成本可能更高,甚至达到上千万人民币。北京木奇移动技术有限公司,专业的软件外包开发…

前端Vue组件化实践:自定义银行卡号格式化组件的探索与应用

在前端开发中,随着业务逻辑的复杂化和应用规模的扩大,传统的一体式开发方式逐渐显露出其局限性。任何微小的改动或新功能的增加都可能牵一发而动全身,导致整体逻辑的修改,进而增加了开发成本和维护难度。为了解决这一问题&#xf…

Linux系统的用户组管理和权限以及创建用户

1.Linux是多用户的操作系统,正如在Windows系统中可以进行用户账号的切换,Linux同样允许多用户操作。在Linux服务器环境中,通常由多名运维人员共同管理,而这些运维人员各自拥有不同的权限和级别。因此,我们可以根据每个…

基于openEuler-22.03-LTS-SP4搭建openstack-t版

openstack 环境初始化安装基础服务安装keystone服务安装glance服务安装placement服务安装nova服务安装neutron服务安装dashboard服务 官网教程 实验环境:VMware17,配置4c4r100G,搭建单节点openstack,组件搭建到dashboard 主机名…

猎人竞技场革命怎么下载 猎人竞技场革命测试资格获取+下载教程分享

《猎人竞技场:革命》是一款多人在线动作游戏,该游戏于近日正式公布,这款游戏的故事背景设定在古代东方,玩家需要扮演一名猎人在充满敌人的世界中生存下来并逃离。为了达成这个目标,玩家需要结合各种技能、装备和战术&a…

泛微开发修炼之旅--37通过js实现监听下拉框,并触发后端接口,改变其他控件内容的实现方法与源码(含pc端和移动端实现)

文章链接:37通过js实现监听下拉框,并触发后端接口,改变其他控件内容的实现方法与源码(含pc端和移动端实现)