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

BitOrbitMaster
• 阅读 643

大家通过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 "your_email@example.com"

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

id_rsa
id_rsa.pub

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

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

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

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

配置单个仓库

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

[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

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

配置账户公钥

以上对仓库添加公玥只能实现对仓库的读惭怍,如果您想要对仓库进行写操作,就需要添加个人公钥,也可以叫账户公玥。鼠标移到右上角自己的账户上,选择其中的设置按钮。
Git的ssh方式如何配置,如何通过ssh方式拉取和提交代码
打开设置界面,选择安全设置下的SSH公玥
Git的ssh方式如何配置,如何通过ssh方式拉取和提交代码
和配置仓库公玥一样,公玥标题可以随便填,公玥内容,就是填写上面在你自己机器上生成的id_rsa.pub文件里面的内容
Git的ssh方式如何配置,如何通过ssh方式拉取和提交代码
然后在你机器上,输入如下命令测试看看是否添加成功,这里输出的内容和上方不同,账户公玥输出的是自己的用户名

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

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

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

更多精彩内容,请关注同名公众:一点sir(alittle-sir)
Git的ssh方式如何配置,如何通过ssh方式拉取和提交代码
点赞
收藏
评论区
推荐文章
前端尾随者 前端尾随者
3年前
sourceTree 添加 ssh key 方法
1.使用git客户的生成公私钥:id\rsa、id\rsa.pub1.1设置Git的username和email:$gitconfigglobaluser.name"xxx"$gitconfig\globaluser.email"xxx.mail@xxx.com"1.2.生成SSH密钥过程:1.2.1.检查是不是已经存在密钥(
前端尾随者 前端尾随者
3年前
GitLab配置ssh key
一、背景当前很多公司都选择git作为代码版本控制工具,然后自己公司搭建私有的gitlab来管理代码,我们在clone代码的时候可以选择http协议,当然我们亦可以选择ssh协议来拉取代码。但是网上很少找到如何用git客户端生成sshkey,然后配置在gitlab,我当时在做的时候苦于摸索,后来终于找到了解决方案,那么本文,我们就来聊一聊如何本地git客户
Easter79 Easter79
3年前
ssh连接服务器
1.概述ssh是一种网络通信协议,用于计算机之间的加密登录.一般用ssh连接服务器有两种方式:密码认证与密钥认证.密码认证就是通过传统的输入密码的方式登录,密钥认证就是把产生的公钥注册到服务器后,用私钥登录,这样就可以不用每次登录输入密码.特别适合作者这种脑残记不住密码的懒人.2.密码认证密码认证登录直接在终端使用ssh
Stella981 Stella981
3年前
Git之SSH公钥与私钥
今天来探讨一下如何使用Git的操作,来进一步的实现代码的下载到本地,我原来也不是很明白git中生成公钥和私钥的作用,我一直在想,git里面你把自己的公钥发给了git的服务器,他是怎么判断的,每一次我换完系统,在重新装机,他是怎么确定是换完系统还是依然可以使用git的,今天我们就来讲解一下最为简单的SSh的方法的clone项目的操作:1.下载git的客户端
Stella981 Stella981
3年前
JGit与远程仓库链接使用的两种验证方式(ssh和https)
JGit是使用JAVA的API来操控Git仓库的库,由Eclipse公司维护。他提供的API分成两个层次,底层命令和高层命令。底层API是直接作用于低级的仓库对象,高层的API是一个面向普通用户级别功能友好的前端。JGit主要通过SSH和HTTP(S)的方式与远程仓库进行交互,此外也可以用Git协议(只读)。通过这两种方式,必然是需要添加验证信息的。介
Stella981 Stella981
3年前
Linux 登陆用户时启动 ssh
文/Fenying使用Git/SSH/SCP之类操作的时候,一般都是用ssh密钥的,但是每次都要先启动sshagent才能注册密钥,挺烦的,于是尝试了一下,能不能在登陆终端的时候自动启动sshagent,然后关闭的时候自动kill掉sshagent。自动启动的原理很简单,就是在~/.bashrc里面加入eva
Stella981 Stella981
3年前
Linux命令之sftp
用途说明sftp命令可以通过ssh来上传和下载文件,是常用的文件传输工具,它的使用方式与ftp类似,但它使用ssh作为底层传输协议,所以安全性比ftp要好得多。常用方式格式:sftp<host通过sftp连接<host,端口为默认的22,用户为Linux当前登录用户。格式:sftpoPort<port<ho
Wesley13 Wesley13
3年前
ubuntu 使用ssh登录github 避免提交时输入用户名和密码
原文链接: ubuntu使用ssh登录github避免提交时输入用户名和密码(https://my.oschina.net/ahaoboy/blog/3120961)ssh免密需要使用ssh方式clone仓库本地安装gitsudoaptgetupdatesudoaptgetinstallgit在用户主目录
Stella981 Stella981
3年前
Git连接GitLab远程仓库
1、简介远程仓库是指托管在网络上的项目仓库,现在互联网上有很多项目托管平台,比如github、gitlab等。为了不公开自己项目代码,可以在自己的服务器上搭建自己的项目仓库,最常见的是搭建GitLab。本地Git与远端服务器GitLab之间连接方式主要分为:SSH方式和HTTP方式。HTTP方式:这种方式要求project在创建的时候只
铁扇公主 铁扇公主
1年前
SSH配置文件管理器 SSH Config Editor Pro激活安装
SSHConfigEditorPro是一款用于管理OpenSSH客户端配置文件的工具。它可以帮助用户以一种智能和高效的方式管理SSH配置文件和knownhosts文件。通过这款软件,用户可以添加或编辑SSH配置文件中的身份、端口转发和其他选项。它的编辑器功
小万哥 小万哥
1年前
Git 安全远程访问:SSH 密钥对生成、添加和连接步骤解析
使用SSH密钥对的Git安全远程访问:生成、添加和连接SSH(SecureShell)是一种用于安全远程访问的协议,它提供了加密通信和身份验证机制。在使用SSH连接到远程Git存储库时,您可以使用SSH密钥对来确保安全性。以下是关于如何生成和使用SSH密钥
BitOrbitMaster
BitOrbitMaster
Lv1
一个人真好,不用迁就别人,别人也不用忍我。
文章
7
粉丝
0
获赞
0