Post

SSH和HTTPS的介绍与对比

SSH和HTTPS的介绍与对比

Difference between SSH and HTTPS in GitHub

1.SSH和HTTPS介绍

SSH(Secure Shell)和HTTPS (Hypertext Transfer Protocol Secure)是两种与Github仓库交互的方法,GitHub提供SSH和HTTPS作为身份验证和通信协议,每种协议都有其优点和使用场景

  • SSH:SSH是一种加密网络协议,提供一种安全的方式来访问和管理远程系统。对于Github,SSH允许用户安全地进行身份验证并与GitHub服务器通信。SSH使用公钥和私钥对进行身份验证,提供了高度的安全性。

  • HTTPS:HTTPS是互联网上广泛使用的安全通信协议。对于Github,HTTPS允许用户使用加密连接访问GitHub存储库并与之交互,HTTPS依赖于用户名和密码或个人访问令牌进行身份验证。

2.SSH和HTTPS区别

2.1 身份验证方法

  • SSH:使用SSH密钥身份验证,用户生成一对密钥(公钥和私钥),公钥存储在Github,私钥存储在用户的机器上

  • HTTPS:使用用户名和密码或者个人访问令牌personal access token (PAT)进行身份验证,PAT是从GitHub帐户生成的令牌

2.2 安全性

  • SSH:因为使用了加密的密钥,因此安全性高,私钥从不通过网络传输,这样未经授权的用户难以访问

  • HTTPS:依赖于密码或者令牌,如果没有适当的保护,这些密码或令牌可能容易受到暴力攻击或泄漏

2.3 易用性

  • SSH:最开始需要设置SSH密钥,比HTTPS稍微复杂一点,但是一旦设置好,就可以在后续中一直使用,SSH就提供了一种方便安全的方式来访问GitHub存储库

  • HTTPS:容易使用,初学者友好,对于那些不喜欢用SSH的人更方便使用

2.4 访问控制

  • SSH:通过使用SSH密钥提供细粒度的访问控制,把特定用户的公钥添加到仓库中可以授予其访问权限

  • HTTPS:访问控制是通过GitHub权限管理的,权限可以更粗粒度。用户可以访问整个存储库,而不是特定的密钥

2.5 克隆和认证

  • SSH:使用SSH克隆仓库代码时,不需要每次都输入访问凭证,身份验证会通过SSH密码自动处理

  • HTTPS:每次与仓库交互时,都需要输入GitHub访问凭证(用户名和密码或PAT)。

3.SSH和HTTPS使用场景

  • SSH:看重安全性和便利性,需要频繁和Github交互,提供强访问控制和简化工作流

  • HTTPS:对于初学者使用比较容易

4.SSH架构

SSH认证的架构包括以下内容:

  • 客户端(client):客户端是用户的本地机器,也是SSH密钥生成和存储的地方,用户会从客户端与Github服务端进行交互

  • SSH密钥对(SSH key pair):包含公钥和私钥,私钥保存在客户端,公钥会和Github服务端共享

  • GitHub服务端(server):GitHub维护一个服务器,监听传入的SSH连接。当用户使用其私钥进行身份验证时,服务器检查与用户的GitHub帐户关联的公钥以确认其身份。

认证过程如下

(1)用户从客户端机器生成一对SSH密钥

(2)用户通过Github账户设置将公钥与Github账户关联起来

(3)当用户与Github交互时,客户端启动到GitHub服务器的安全SSH连接

(4)服务器获取用户的公钥,和存储在对应Github账户的公钥进行对比验证

(5)如果密钥匹配,服务端会授权用户对Github资源的访问

5.HTTPS架构

HTTPS认证的架构包括以下内容:

  • 客户端(client):与SSH的客户端类似,客户端代表用户的本地机器,是用户执行git操作和与github资源交互的地方

  • GitHub服务端(server):GitHub维护一个服务器来托管它的仓库和服务。当用户发出HTTPS请求时,这些请求被定向到GitHub服务器。

  • 认证方式:(1)用户和密码,出于安全考虑使用变少(2)个人访问令牌,从用户的github账户中生成PAT

认证过程如下:

(1)用户向GitHub发起HTTPS请求,通常通过使用Git命令或通过web浏览器与GitHub交互

(2)如果使用用户名和密码,用户提供GitHub凭据

(3)如果使用PAT,则用户提供令牌

(4)GitHub服务器根据用户的帐户检查提供的凭据或令牌

(5)如果凭据或令牌有效,GitHub授予对所请求资源的访问权

This post is licensed under CC BY 4.0 by the author.