Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Git的ssh方式如何配置,如何通过ssh方式拉取和提交代码

Git的ssh方式如何配置,如何通过ssh方式拉取和提交代码

原创
作者头像
一点sir
修改于 2023-09-17 07:48:51
修改于 2023-09-17 07:48:51
4.1K0
举报
文章被收录于专栏:python教程python教程

大家通过git拉取代码的时候,一般都是通过http的方式,简单方便。但是细心的童鞋肯定也注意到Git也是支持ssh方式的。可能很多人也试过使用这个方式,但是好像没有那么简单。那么什么是SSH呢?为啥要使用SSH方式呢?

HTTPS和SSH的区别

Git支持使用HTTPS和SSH两种方式与远程仓库进行通信和代码传输,它们在一些方面有所不同。

身份验证:HTTPS使用用户名和密码进行身份验证,而SSH使用公钥认证,通过生成公钥和私钥对来建立安全连接。 传输速度:SSH方式在数据传输时通常比HTTPS方式更快一些,因为SSH采用了压缩和多路复用等技术。 安全性:SSH方式相对于HTTPS方式更安全,因为SSH使用公钥和私钥进行身份验证,并通过加密的SSH隧道传输数据。

那么从这个区别我们就可以指定,选择使用SSH方式的一些原因包括:

安全性要求高:SSH使用密钥对进行身份验证和数据传输加密,提供了更高的安全性,适用于需要保护代码和传输数据的私密性的情况。 压缩与传输效率:SSH可以对数据进行压缩再传输,减少数据的传输量,从而提高传输效率。相比之下,HTTP方式在传输过程中不会进行压缩处理,可能导致传输时间更长。 方便的身份验证管理:使用SSH方式时,可以通过在本地计算机上配置SSH密钥对来进行身份验证,可在多个远程仓库上进行方便管理。

当然有些人说SSH方式不用频繁的输密码,但是HTTP方式也可以通过设置来实现,严格来说,这个并不能算是优势。

所以总的来说,SSH方式相对更安全,并且利用公钥和私钥来建立连接,提供了更高的身份验证和数据传输的保障。相比于HTTP方式,SSH方式通常具有更快的传输速度和更好的性能。

设置SSH方式

那么我们如何使用ssh方式来拉取、推送代码呢,下面以linux机器,gitee平台为例,详细介绍一下整个过程。

首先在自己的机器上面输入以下命令

代码语言:txt
AI代码解释
复制
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

your_email@example.com需要填写你再gitee或者github上提交代码的那个邮箱

然后到~/.ssh/目录下就可以看见两个文件。

代码语言:txt
AI代码解释
复制
id_rsa
id_rsa.pub

id_rsa是私玥,id_rsa.pub是公钥,公玥是填写再在服务器上的,如果是提交到gitee或者github上面的话,就需要就那上面去配置公玥,私玥是自己本地使用的。

复制出id_rsa的公玥内容,然后打开gitee网站。

我们可以对单个仓库或者整个账户进行配置。

如果对单个仓库进行配置的话,那么只能对单个仓库进行克隆,拉取代码,没有办法进行提交代码,也就是说只有读的权限,没有写的权限。

如果对整个账户进行配置的话,那么不仅可以对所有的仓库进行克隆、拉取代码,对所有的仓库也可以进行提交代码,不仅有读的权限也有写的权限。

配置单个仓库

如图所示,打开自己需要配置的仓库,打开右边的管理选项

点击右边的部署公玥管理,点击添加公玥

输入图片说明
输入图片说明

打开添加部署公钥界面,公玥标题可以随便填,下方就填写公玥内容,就是上面在你自己机器上生成的id_rsa.pub文件里面的内容

输入图片说明
输入图片说明

然后在你机器上,输入如下命令测试看看是否添加成功

代码语言:txt
AI代码解释
复制
[root@localhost note]# ssh -T git@gitee.com
Hi Anonymous (DeployKey)! You've successfully authenticated, but GITEE.COM does not provide shell access.
Note: Perhaps the current use is DeployKey.
Note: DeployKey only supports pull/fetch operations
输入图片说明
输入图片说明

配置账户公钥

以上对仓库添加公玥只能实现对仓库的读惭怍,如果您想要对仓库进行写操作,就需要添加个人公钥,也可以叫账户公玥。鼠标移到右上角自己的账户上,选择其中的设置按钮。

输入图片说明
输入图片说明

打开设置界面,选择安全设置下的SSH公玥

输入图片说明
输入图片说明

和配置仓库公玥一样,公玥标题可以随便填,公玥内容,就是填写上面在你自己机器上生成的id_rsa.pub文件里面的内容

输入图片说明
输入图片说明

然后在你机器上,输入如下命令测试看看是否添加成功,这里输出的内容和上方不同,账户公玥输出的是自己的用户名

代码语言:txt
AI代码解释
复制
[root@localhost note]# ssh -T git@gitee.com
Hi 【你的用户名】! You've successfully authenticated, but GITEE.COM does not provide shell access.
输入图片说明
输入图片说明

最后就可以利用ssh的方式进行拉取和推送代码了。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
github添加ssh密钥,通过ssh方式推送代码
很多人在使用github的时候,如果还是使用https的方式推送代码的话,可能会发现推送不上去,官方会建议你使用ssh的方式进行代码推送。通过ssh方式推送代码,速度更快,更高效,而且还不用每次输密码,缺点就是要在你自己的本机以及github上面做一些配置。这些配置并不难,很简单,前期花一点点时间,可以避免很多繁琐的事情。
一点sir
2024/08/05
2350
github添加ssh密钥,通过ssh方式推送代码
使用SSH密钥在Git服务器上免密码提交代码
在使用Git进行版本控制时,每次提交代码时都要求输入用户名和密码,这对于频繁提交的开发者来说会显得十分繁琐。通过配置SSH密钥,可以实现免密码提交代码,既提升了工作效率,也增强了安全性。本文将介绍如何在Git服务器上使用SSH密钥进行身份验证,替代每次输入账户密码的方式。
alanzeng
2025/01/14
2730
【Git】每天1分钟系列——Git建仓
在实际项目开发中,按照如下步骤使用git进行代码管理 1.项目经理在开发之初,创建好仓库,上传项目的框架、组员分支 2.组员克隆项目框架,同步分支,按分工开发,在分支提交代码 3.在需要发布时
天道Vax的时间宝藏
2021/08/11
5370
推荐使用 SSH 方式连接 Git 服务
Git 已经成为我们开发最流行的版本控制工具了,Git 支持多种传输协议,其中最常用的就是https 和 ssh,平常我们用 https 比较多,这种方式 pull 和 push 代码都要输入账户密码,非常不方便。那么有没有更加方便而且安全的方式呢?当然有!ssh 方式可以做到这一点。
码农小胖哥
2020/04/01
1.9K0
GitLab配置ssh key
  当前很多公司都选择git作为代码版本控制工具,然后自己公司搭建私有的gitlab来管理代码,我们在clone代码的时候可以选择http协议,当然我们亦可以选择ssh协议来拉取代码。但是网上很少找到如何用git客户端生成ssh key,然后配置在gitlab,我当时在做的时候苦于摸索,后来终于找到了解决方案,那么本文,我们就来聊一聊如何本地git客户端生成ssh key,然后配置在gitlab里,而后使用ssh协议进行提交和拉取git远程仓库的代码。
阿豪聊干货
2018/08/09
1.1K0
GitLab配置ssh key
ASP.NET Core + Jenkins实现自动化发布
由于部署个人博客系统的服务器只有2G内存,每次利用jenkins编译,发布的时候jenkins老是挂,因此新买了一台轻量应用服务器,专门用于个人博客系统的持续发布任务,下面讲解如何利用jenkins实现系统的持续发布功能。
郑子铭
2024/02/26
3070
ASP.NET Core + Jenkins实现自动化发布
使用 SSH 方式拉取代码
大家在使用 git 拉取代码时,是否曾遇到过类似 OpenSSL SSL_read: Connection was reset, errno 10054 的报错信息,解决方案参考
攻城狮杰森
2022/06/03
2.3K0
使用 SSH 方式拉取代码
git多账号配置和多个ssh配置
有时候我们的代码仓库时使用 ssh 方式,那就必须要配置 ssh 之后才能 clone pull push .... SSH 协议可以实现安全的免密认证,且性能比 HTTP(S) 协议更好
用户6256742
2024/05/19
5980
git多账号配置和多个ssh配置
第一次连接 Git 如何拉取代码:小白必读
在开发过程中,Git 是每位程序员都需要掌握的版本控制工具。作为一个 Git 小白,第一次连接 Git 并拉取代码可能会让人感到困惑。本文将带你一步步完成从安装到拉取代码的过程,配合丰富的命令示例和实用技巧,帮助你轻松上手!
默 语
2025/05/21
1K0
第一次连接 Git 如何拉取代码:小白必读
GitHub 系列之「向GitHub 提交代码」1.SSH2.生成SSH key3.GitHub 上添加 SSH key4.Push & Pull5.提交代码
你拥有了一个 GitHub 账号之后,就可以自由的 clone 或者下载其他项目,也可以创建自己的项目,但是你没法提交代码。仔细想想也知道,肯定不可能随意就能提交代码的,如果随意可以提交代码,那么 GitHub 上的项目岂不乱了套了,所以提交代码之前一定是需要某种授权的,而 GitHub 上一般都是基于 SSH 授权的。
Python攻城狮
2018/08/23
4980
GitHub 系列之「向GitHub 提交代码」1.SSH2.生成SSH key3.GitHub 上添加 SSH key4.Push & Pull5.提交代码
【One by one系列】Git一步步生成SSH密钥,免密拉取远程仓库
进入新环境,接手前人留下的电脑,使用的源代码管理工具是git,远程仓库是gitee,git clone https://xxx.git
DDGarfield
2022/06/23
5230
【One by one系列】Git一步步生成SSH密钥,免密拉取远程仓库
利用 SSH 完成 Git 与 GitHub 的绑定
在「史上最简单的 GitHub 教程」中,我们已经对 GitHub 有了一定的了解,包括创建仓库、拉分支,或者通过Clone or download克隆或者下载代码;我们也下载并安装了 Git,也了解了其常用的命令。But,无论是 GitHub,还是 Git,我们都是单独或者说是独立操作的,并没有将两者绑定啊!也就是说,我们现在只能通过 GitHub 下载代码,并不能通过 Git 向 GitHub 提交代码。 因此,在本篇博文中,我们就一起完成 Git 和 GitHub 的绑定,体验通过 Git 向 Git
CG国斌
2018/01/26
1.9K0
Coding配置SSH到提交代码(linux)
于是在孜然麻辣熊dalao的建议下用了Git仓库(coding.net),并且大大教了我在windows上用工具提交代码,但是最近换成了deepin系统(基于linux)。
泽泽社长
2023/04/17
1.5K0
Git建立远程代码仓库和本地代码仓库
远程仓库是用来托管代码的平台,比如说Github,GitLab,Gerrit,码云Gitee等,这些都是开源的代码仓库系统。因此,很多公司都会自己搭GitLab,自己搭Gerrit。当然了,这些开源系统的功能并不限于代码仓库,还有代码评审等。
Python碎片公众号
2021/02/26
2K0
Git建立远程代码仓库和本地代码仓库
Git 安全远程访问:SSH 密钥对生成、添加和连接步骤解析
SSH(Secure Shell)是一种用于安全远程访问的协议,它提供了加密通信和身份验证机制。在使用 SSH 连接到远程 Git 存储库时,您可以使用 SSH 密钥对来确保安全性。以下是关于如何生成和使用 SSH 密钥对的详细步骤:
小万哥
2024/03/04
1.2K0
Git 安全远程访问:SSH 密钥对生成、添加和连接步骤解析
Gitlab的落地与应用(二)测试代码接入Gitlab实践
在上一篇私有化代码仓库Gitlab的落地与应用(一)中,重点介绍了Gitlab的搭建过程、数据迁移、自动备份等内容,本篇内容将重点回顾测试团队代码接入Gitlab的过程及经验。在正式开始前,先简述一下我们团队当前测试代码管理的现状、所面临的问题以及采用统一管理代码的优缺点分析
大刚测试开发实战
2022/11/14
8710
Gitlab的落地与应用(二)测试代码接入Gitlab实践
【愚公系列】2022年12月 使用Jenkins实现程序的自动化发布
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。
愚公搬代码
2022/12/30
7620
【愚公系列】2022年12月 使用Jenkins实现程序的自动化发布
GitHub Actions入门教程:自动化部署静态博客
前天,我使用 GitHub Actions 实现了静态博客的自动化部署,觉得它非常强大,只要你提交到 GitHub,后面的部署完全由 GitHub 自动完成。
somenzz
2021/02/08
1.7K0
Git ssh 配置及使用
前言:前几天在写博客 手把手教你用Hexo + github 搭建自己博客的时候,经常需要用到一些git操作,截了好多图,于是就想干脆整理成一系列的git 教程,总结如下
全栈程序员站长
2022/09/12
1.7K0
Git ssh 配置及使用
Git 的基本使用(二)生成SSH,并从远端服务器上拉取代码
我在上篇介绍了如何本地创建Git仓库并提交代码到远端。但是其中有个关于SSH的配置没有进行详细说明
zinyan.com
2023/07/13
2K0
Git 的基本使用(二)生成SSH,并从远端服务器上拉取代码
推荐阅读
相关推荐
github添加ssh密钥,通过ssh方式推送代码
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档