github 上clone ssh和https区别

本文介绍了Git的SSH和HTTPS协议的使用情况。SSH协议通常使用22端口,需要配置SSH密钥,安全性高但速度相对较慢;HTTPS协议使用443端口,通过用户名/密码授权,速度更快,更适用于有防火墙限制的环境。SSH适合内部项目,HTTPS适合开源项目,便于他人克隆。在GitHub上,用户可以根据需求切换SSH或HTTPS方式,并通过生成SSH密钥简化身份验证过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

git可以使用四种主要的协议来传输资料: 本地协议(Local),HTTP 协议,SSH(Secure Shell)协议及 git 协议。其中,本地协议由于目前大都是进行远程开发和共享代码所以一般不常用,而git协议由于缺乏授权机制且较难架设所以也不常用。

最常用的便是SSH和HTTP(S)协议。git关联远程仓库可以使用http协议或者ssh协议。

【特点/优缺点】

ssh:

一般使用22端口;
通过先在本地生成SSH密钥对再把公钥上传到服务器;
速度相较慢点
https:

一般使用443端口;
通过用户名/密码授权,可用性比较高;
速度相较快点
一般企业防火墙会打开80和443这两个http/https协议的端口,因此在架设了企业防火墙的时候使用http就可以很好的绕开安全限制使用git了,很方便;而对于ssh来说,企业防火墙很可能没打开22端口。

【使用区别】

clone项目:

使用ssh方式时,需要配置ssh key,即要将生成的SSH密钥对的公钥上传至服务器;

使用http方式时,没有要求,可以直接克隆下来。

push项目:

使用ssh方式时,不需要验证用户名和密码,之前配置过ssh key,(如果你没设置密码)直接push即可;

使用http方式时,需要验证用户名和密码。

总结:

HTTPS利于匿名访问,适合开源项目,可以方便被别人克隆和读取(但没有push权限);

SSH不利于匿名访问,比较适合内部项目,只要配置了SSH公钥极可自由实现clone和push操作。

【github上切换SSH/HTTP方式】

【如何生成SSH密钥】

1、设置git的user name和user email

git config --global user.name ‘yourname’
git config --global user.email ‘youremail’
// 如果之前已经设置了 那就不要加后面的yourname/youremail 直接获取即可
2、生成SSH密钥

输入指令:ssh-keygen -t rsa -C “youremail”;

按回车即表示默认这个文件路径名,接着又会提示你输入两次密码(该密码是你push文件的时候要输入的密码,而不是github管理者的密码),当然,你也可以不输入密码,直接按回车。那么push的时候就不需要输入密码,直接提交到github上了。

即按三次回车后,就成功生成了id_rsa 和 id_rsa.pub 两个文件。

打开id_rsa.pub,将内容复制到github中,路径:Settings - SSH and GPG keys - New SSH Key

添加成功后,github就可以识别你的机器,允许你从github拉取上传代码了。

### GitHub SSH HTTPS区别及使用场景 #### 一、协议基础差异 GitHub 支持通过两种主要方式克隆仓库:SSH HTTPS。这两种方法基于不同的传输协议,具有各自的特点。 对于 **HTTPS** 方式而言,在执行 `git clone` 或者其他涉及访问远程仓库的操作时,会提示用户提供用户名密码[^2]。这种方式适合那些处于严格网络环境下的开发者,因为大多数防火墙不会阻止 HTTP(S) 流量。然而,频繁地手动输入凭证可能带来不便。 而采用 **SSH** 协议,则依赖于公钥加密技术来进行身份验证。一旦配置好本地机器上的 SSH 密钥并将其添加至 GitHub 账户设置中的 SSH Keys 下,之后所有的 Git 操作都不再需要重复输入账户信息,极大地提高了工作效率[^3]。 #### 二、安全性考量 从安全性的角度来看,两者都能提供足够的保护措施以保障数据的安全传输。不过值得注意的是,默认情况下 HTTPS 连接要求用户每次都提交明文形式的账号密码;虽然可以通过缓存机制减少这种麻烦,但仍存在一定的风险隐患。相比之下,SSH 使用非对称密钥对实现认证过程,只有拥有对应私钥的人才能完成授权操作,因此被认为更加安全可靠。 #### 三、适用场合建议 当面临如下情况之一时推荐优先考虑使用 SSH: - 需要经常性地进行 pull/fetch/push 等交互式的 Git 命令; - 所处的工作环境中允许自由配置端口映射,并且能够稳定维持长期连接; - 对个人隐私有较高要求,不希望暴露真实的身份信息给第三方服务提供商。 反之,如果遇到以下情形则更适合选用 HTTPS 方法: - 处理临时项目或是偶尔参与开源贡献的情形下,无需复杂安装步骤即可快速上手; - 工作场所或其他受限区域内的网络安全策略较为严苛,不允许开放额外的服务端口; - 更倾向于利用 OAuth Token 来代替传统意义上的登录凭据管理。 ```bash # 使用 HTTPS 克隆仓库的例子 $ git clone https://github.com/user/repo.git # 使用 SSH 克隆仓库的例子 $ git clone git@github.com:user/repo.git ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值