首页 > 其他分享 >Git的ssh方式如何配置,如何通过ssh方式拉取和提交代码

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

时间:2023-09-17 16:02:05浏览次数:60  
标签:Git 方式 仓库 rsa 拉取 公玥 SSH ssh

大家通过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平台为例,详细介绍一下整个过程。 首先在自己的机器上面输入以下命令

ssh-keygen -t rsa -b 4096 -C "[email protected]"

[email protected]需要填写你再gitee或者github上提交代码的那个邮箱 然后到~/.ssh/目录下就可以看见两个文件。

id_rsa
id_rsa.pub

id_rsa是私玥,id_rsa.pub是公钥,公玥是填写再在服务器上的,如果是提交到gitee或者github上面的话,就需要就那上面去配置公玥,私玥是自己本地使用的。 复制出id_rsa的公玥内容,然后打开gitee网站。

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

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

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

配置单个仓库

如图所示,打开自己需要配置的仓库,打开右边的管理选项 点击右边的部署公玥管理,点击添加公玥 输入图片说明 打开添加部署公钥界面,公玥标题可以随便填,下方就填写公玥内容,就是上面在你自己机器上生成的id_rsa.pub文件里面的内容 输入图片说明 然后在你机器上,输入如下命令测试看看是否添加成功

[root@localhost note]# ssh -T [email protected]
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文件里面的内容 输入图片说明 然后在你机器上,输入如下命令测试看看是否添加成功,这里输出的内容和上方不同,账户公玥输出的是自己的用户名

[root@localhost note]# ssh -T [email protected]
Hi 【你的用户名】! You've successfully authenticated, but GITEE.COM does not provide shell access.

输入图片说明

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

更多精彩内容,请关注同名公众:一点sir(alittle-sir)

标签:Git,方式,仓库,rsa,拉取,公玥,SSH,ssh
From: https://blog.51cto.com/jtime/7502444

相关文章

  • Linux ssh命令详解
      SSH(远程连接工具)连接原理:ssh服务是一个守护进程(demon),系统后台监听客户端的连接,ssh服务端的进程名为sshd,负责实时监听客户端的请求(IP22端口),包括公共秘钥等交换等信息。ssh服务端由2部分组成:openssh(提供ssh服务)   openssl(提供加密的程序)ssh的客户端可以用XS......
  • IDEA用git管理文件后各颜色含义
    红色:表示没有add;绿色:表示没有commit;  习惯:  合并之前先CodeReview:https://zhuanlan.zhihu.com/p/73809355 参考文章【1】https://blog.csdn.net/lidazhou/article/details/84291641【2】GitHub中CodeReview:https://www.cnblogs.com/daniel-hutao/p/code_review.......
  • 超级好用绘图工具(Draw.io+Github)
    超级好用绘图工具(Draw.io+Github)方案简介绘图工具:Draw.io存储方式:Github1Draw.io1.2简介​ 是一款免费开源的在线流程图绘制软件,可以用于创建流程图、组织结构图、网络图、UML图等各种类型的图表。它提供了丰富的图形元素和编辑功能,使用户能够轻松地创建和编辑图......
  • git命令
    git命令配置sshssh-keygen-trsa-b4096-C"****@****.****"添加远程仓库[email protected]:seamong/gitbookgitpush-uoriginmaster本地创建远程分支gitpushorigin<本地分支>:<远程分支>本地删除远程分支gitpushorigin:<远程分支>......
  • SSH默认端口从22修改为其他端口
    1.在终端中使用root权限登录到您的Linux服务器。2.打开终端,并使用适合您的文本编辑器(如vi、nano等)打开SSH配置文件。例如,通过运行以下命令之一:vi/etc/ssh/sshd_config3.在打开的配置文件中,找到以"Port"开头的行。通常,此行会被注释(以"#"字符开头),表示默认的SSH端口为22。4.如......
  • git 错误
    git代码太大了导致下载失败:fatal:earlyEOFfatal:fetch-pack:invalidindex-packoutput gitclone--depth=1要克隆的git地址  git推送超过100M文件:#方法一:全局配置gitconfig--globalhttp.postBuffer524288000或者#方法二:当前仓库配置gitconfighttp.post......
  • C#实现SSH、SCP、FTP等操作
    C#实现SSH、SCP、FTP等操作C#没有自带的SSH、SCP、FTP等操作的方法库,自己编写又太麻烦,这里将使用第三方Renci.SshNet.dll动态链接库实现这些操作 一、获取RENCI.SSHNET.DLL 二、将RENCI.SSHNET.DLL添加进C#工程我使用visualstudio2015作为IDE,将Renci.SshNet.dll添加进......
  • GitHub 上的开源项目贡献流程具体操作流程
    一般的GitHub上的贡献流程,包括创建fork、克隆、修改、提交、创建PullRequest的详细步骤:创建Fork:访问你要贡献的项目的GitHub页面,点击右上角的"Fork"按钮,这会在你的GitHub账户下创建该项目的副本。克隆项目:打开你的终端(命令行界面)并执行以下命令,将fork的项......
  • 《安富莱嵌入式周报》第307期:开源智能制冷板,Keil MDK6发布时间,编程助手Github Copilot
     视频版:https://www.bilibili.com/video/BV1fV4y1X7sk 1、KeilMDK6最终定于2023年末发布https://www.keil.com/pr/article/1302.htmMDK6的发布消息最终尘埃落定,定于2023年末发布。相比现在的MDK,主要是集成了功能安全库及其编译器,KeilStudio桌面版,跨平台支持。2、开源智能冷却板......
  • WebStrom提交代码到GitLab报错Error: Cannot find any-observable implementation nor
    项目场景:前端代码完成后,提交代码问题描述提交代码到GitLab时,因自动检测机制导致项目提交失败C:\D\insper\inspur_works\custom-manage-front\node_modules\any-observable\register.js:29 thrownewError('Cannotfindany-observableimplementationnor'+ ^Error:C......