git中https和SSH的clone方式详细介绍 以及多个github账号的SSH冲突解决 以及SSH端口被防火墙屏蔽问题解决 通过HTTPS克隆私有项目问题

本文详细介绍了Git中HTTPS和SSH两种克隆方式的区别,包括SSH Key的配置、多GitHub账号SSH冲突解决、SSH端口被防火墙屏蔽的处理方法,以及如何通过HTTPS克隆私有项目,特别是针对SourceTree等工具的解决方案。

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

学习目标:

掌握Git的知识


学习内容:

1.HTTPS和SSH方式的区别 2.完整配置SSH秘钥和公钥的步骤 3.多个github账号的SSH冲突解决 4.SSH端口被防火墙屏蔽问题解决 5.通过HTTPS或者SSH克隆私有项目

学习时间:

2022.2.10

学习产出:

1.HTTPS和SSH方式的区别

在git中clone项目有两种方式:HTTPS和SSH,它们的区别如下:

HTTPS:不管是谁,拿到url随便clone,但是在push的时候需要验证用户名和密码;
SSH:clone的项目你必须是拥有者或者管理员,而且需要在clone前添加SSH Key。
SSH 在push的时候,是不需要输入用户名的,如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。

在git中使用SSH Key的步骤: 检查电脑是否存在SSH Key:$ cd ~/.ssh$ ls 如果存在id_rsa.pub 或
id_dsa.pub 文件,说明文件以及存在,跳过创建SSH Key步骤。 创建SSH Key 将公共的SSH 放到远程仓库上

2.完整配置SSH秘钥和公钥的步骤

请看我该专栏的另外一篇文章

3.多个github账号的SSH冲突解决

github使用SSH与客户端连接。如果是单用户(first),生成密钥对后,将公钥保存至github,
每次连接时SSH客户端发送本地私钥(默认~/.ssh/id_rsa)到服务端验证。
单用户情况下,连接的服务器上保存的公钥和发送的私钥自然是配对的。

但是如果是多用户(first,second),我们在连接到second的帐号时,
second保存的是自己的公钥,但是SSH客户端依然发送默认私钥,即first的私钥, 那么这个验证自然无法通过。
不过,要实现多帐号下的SSH key切换在客户端做一些配置即可。

首先cd到~/.ssh 使用 ssh-keygen -t -rsa -C ‘second@mail.com’ 生成新的SSH key:id_rsa_second,生成完后将新的SSH public key添加到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、付费专栏及课程。

余额充值