设置 Git 默认推送不需要输入账号和密码【Ubuntu、SSH】

如何设置 Git 默认推送不需要输入账号和密码

在使用 Git 管理代码时,许多开发者会遇到每次推送(push)或拉取(fetch)代码时都需要输入 GitHub 或 GitLab 等远程仓库的账号和密码的情况。虽然设置了用户名和电子邮件信息以确保提交时的身份正确,但这并不能解决每次操作时仍然需要输入密码的问题。
例如,我们可以使用以下命令来设置用户名和电子邮件:

git config --global user.name 'xx'
git config --global user.email 'xxx@qq.com'

这些配置确保了 Git 提交时的身份信息正确,但它们并不能避免每次与远程仓库交互时重复输入密码的麻烦。在这里插入图片描述

因此,为了提升工作效率并简化操作,许多开发者选择配置 SSH 密钥,从而免去每次推送代码时输入账号和密码的烦恼。

本文将详细介绍如何配置 SSH 密钥,使 Git 推送代码时不再需要输入账号和密码。

初学者常见的 HTTPS URL 克隆方式

对于初学者而言,HTTPS URL 克隆无疑更为直观和便捷。HTTPS 协议可以直接通过浏览器访问,而且操作简单。只需要复制远程仓库的 HTTPS URL,然后在本地执行以下命令:

git clone https://github.com/username/repository.git

这种方式的好处是操作简单,可以直接使用用户名和密码来进行认证。然而,HTTPS 协议也有一个不便之处——每次进行 git pullgit push 操作时,都需要手动输入账号和密码。尤其是在频繁推送代码的情况下,重复输入账号密码显得非常繁琐和低效。

SSH URL 克隆方式的优势

相比 HTTPS,SSH URL 克隆在初次设置时稍显复杂,需要配置和添加 SSH key。但一旦配置成功,使用 SSH 的方式将使得后续的操作变得非常流畅。因为 SSH 是一种加密的网络传输协议,它不仅确保了数据传输的安全性,还免去了每次输入账号和密码的麻烦。

使用 SSH 协议的最大好处是,开发者在进行代码拉取或推送时,无需再输入账号和密码。这是通过在本地生成一个 SSH 密钥对(包括公钥和私钥),并将公钥上传到远程 Git 仓库(如 GitHub)来实现认证的。

如何配置 SSH 密钥

为了让 Git 推送和拉取代码时不再需要输入账号和密码,我们可以通过配置 SSH 密钥来实现。下面是详细的步骤。

1. 生成 SSH 密钥对

首先,打开终端并使用以下命令生成 SSH 密钥对。如果你之前没有生成过密钥,或者想重新生成新的密钥,可以执行以下命令:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • -t rsa:指定使用 RSA 算法。
  • -b 4096:指定密钥长度为 4096 位。
  • -C "your_email@example.com":为密钥添加一个标识(通常是你的邮箱地址)。

执行该命令后,它会提示你选择保存位置。你可以在提示时指定路径为当前目录,例如:

~/.ssh/id_rsa

在这里插入图片描述
或者在命令中直接指定路径:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ./id_rsa

在这里插入图片描述

这样,生成的密钥将直接保存在当前文件夹中。-f ./id_rsa 参数指定了密钥保存的文件名和路径。之后,你可以将该密钥上传到项目中使用,方便管理多个仓库的密钥。

然后,它会要求你输入一个密码来保护私钥(也可以留空)。

2. 添加 SSH 公钥到 SSH 代理

生成密钥对后,下一步是将私钥添加到 SSH 代理。首先,启动 SSH 代理并将私钥加载到代理中:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

如果你将密钥保存在当前文件夹或指定了不同的路径(例如 ./id_rsa),可以通过以下命令加载私钥:

ssh-add ./id_rsa

3. 将 SSH 公钥添加到远程 Git 仓库(如 Gitee)

接下来,你需要将生成的 SSH 公钥添加到远程仓库。首先,使用以下命令查看并复制公钥内容:

cat ~/.ssh/id_rsa.pub

如果你使用的是自定义文件名,请将路径更改为相应的公钥路径,如:

cat ./id_rsa.pub

在这里插入图片描述

复制输出的公钥内容。

然后,访问 Gitee SSH 密钥设置页面,点击 “添加 SSH 公钥” 按钮,将复制的公钥粘贴到页面中的 “公钥” 字段。点击 “确定” 完成配置。
在这里插入图片描述

完成此设置后,再次进行一次身份认证,就可以完成配置。

在这里插入图片描述

4. 配置 Git 使用 SSH

完成 SSH 密钥配置后,下一步是确保 Git 使用 SSH 连接远程仓库。你可以通过以下命令将远程仓库 URL 设置为 SSH URL:

git remote set-url origin git@github.com:username/repository.git

例如,如果你使用的是 Gitee:

git remote set-url origin git@gitee.com:username/repository.git

完成此设置后,Git 将自动使用 SSH 协议进行通信,以后每次推送代码时,你就无需再输入账号和密码了。


如何将已有的 HTTPS 克隆仓库更改为 SSH 克隆

如果你已经通过 HTTPS 克隆了仓库,并希望改为使用 SSH 进行推送和拉取操作,可以按照以下步骤进行更改:

1. 删除现有的 HTTPS 连接

在终端中输入以下命令,删除现有的 HTTPS 远程仓库链接:

git remote rm origin

2. 添加 SSH 链接

接着,使用 SSH URL 重新设置远程仓库地址:

git remote add origin git@gitee.com:username/repository.git

完成此设置后,今后推送代码时就不再需要输入 GitHub 的账号和密码了。


小贴士:使用多个 SSH 密钥

如果你有多个 Git 仓库,并且希望为每个仓库使用不同的 SSH 密钥(例如,一个用于 GitHub,一个用于 GitLab),你可以为每个仓库生成不同的 SSH 密钥并通过配置文件指定使用哪个密钥。

~/.ssh/config 文件中,可以为不同的域名指定不同的 SSH 密钥文件。例如:

# GitHub
Host github.comHostName github.comUser gitIdentityFile ~/.ssh/id_rsa_github# GitLab
Host gitlab.comHostName gitlab.comUser gitIdentityFile ~/.ssh/id_rsa_gitlab

这样,在不同的仓库中,Git 会自动选择相应的密钥进行身份验证,而无需手动输入密码。


通过配置 SSH 密钥,你不仅可以省去每次输入用户名和密码的麻烦,还能提高代码管理的安全性和便捷性。希望本教程能够帮助你提升 Git 使用体验,享受无密码推送的便捷!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/893159.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ArcGIS微课1000例】0140:总览(鹰眼)、放大镜、查看器的用法

文章目录 一、总览工具二、放大镜工具三、查看器工具ArcGIS中提供了三种局部查看的工具: 总览(鹰眼)、放大镜、查看器,如下图所示,本文讲述这三种工具的使用方法。 一、总览工具 为了便于效果查看与比对,本实验采用全球影像数据(位于配套实验数据包中的0140.rar中),加…

Vue3数据响应式原理

什么是数据响应式 当数据变化时,引用数据的函数(副作用函数)自动重新执行。 即数据触发了函数的响应,如:视图渲染中使用了某数据,数据改变后,视图跟着自动更新。 触发者:数据 响应者…

机器学习06-正则化

机器学习06-正则化 文章目录 机器学习06-正则化0-核心逻辑脉络1-参考网址3-大模型训练中的正则化1.正则化的定义与作用2.常见的正则化方法及其应用场景2.1 L1正则化(Lasso)2.2 L2正则化(Ridge)2.3 弹性网络正则化(Elas…

springboot学生成绩管理系统

Spring Boot学生成绩管理系统是一个基于Spring Boot框架开发的,旨在帮助教育机构、学校或教师高效管理学生成绩的系统。 一、系统背景与意义 在教育领域,学生成绩的管理是一项重要且繁琐的工作。传统的手工管理方式不仅效率低下,还容易出错…

13软考高项,项目资源管理

团队章程:价值观,沟通指南,决策标准和过程,冲突处理过程,会议指南和团队共识! 资源管理计划:识别资源,获取资源,角色,组织图,培训,团…

Spring AI入门示例HelloWorld

本文重点介绍,基于Spring AI框架,并使用阿里百炼大模型服务平台的AI服务,快速搭建一个springboot工程,并进行简单的AI问答,初步验证Spring AI框架的易用性,以及与阿里巴巴AI框架spring-ai-alibaba-starter的…

git系列之revert回滚

1. Git 使用cherry-pick“摘樱桃” step 1: 本地切到远程分支,对齐要对齐的base分支,举例子 localmap git pull git reset --hard localmap 对应的commit idstep 2: 执行cherry-pick命令 git cherry-pick abc123这样就会将远程…

【C++】结构体(上)

1、结构体基本概念 结构体属于用户自定义当代数据类型,允许用户存储不同当代数据类型 2、结构体定义和使用 语法: struct 结构体名 { 结构体成员列表 }; 通过结构体创建变量的方式有三种: (1)struc…

技术晋升读书笔记—华为研发

读完《华为研发》第三版,我深感震撼,书中的内容不仅详实地记录了华为公司的成长历程,还揭示了华为成功背后的管理理念和创新思路。这本书通过真实的案例和数据,展示了华为如何从一个小企业发展成全球通信行业的领导者。 一、关键人…

高效实现 Markdown 转 PDF 的跨平台指南20250117

高效实现 Markdown 转 PDF 的跨平台指南 引言 Markdown 文件以其轻量化和灵活性受到开发者和技术写作者的青睐,但如何将其转换为易于分享和打印的 PDF 格式,是一个常见需求。本文整合了 macOS、Windows 和 Linux 三大平台的转换方法,并探讨…

[Mac + Icarus Verilog + gtkwave] Mac运行Verilog及查看波形图

目录 1. MAC安装环境 1. 1 Icarus Verilog 编译 1. 2 gtkwave 查看波形 2. 安装遇到的问题 2. 1 macOS cannot verify that this app is free from malware 2. 2 gtkwave-bin is not compatible with macOS 14 or later 3. 运行示例 3. 1 源代码 3. 2 编译Verilog 3. 3 生成.v…

FRP内网穿透0.61.1新版教程

在上一篇zerotier讲述了如何实现虚拟局域网搭建,这篇会讲述FRP内网穿透的使用教程 那么frp与zerotier的区别是什么呢?(说人话) FRP 主要用于内网服务向外网的单向暴露。 ZeroTier 用于构建一个虚拟的私有网络,实现多点…

如何通过 Apache Airflow 将数据导入 Elasticsearch

作者:来自 Elastic Andre Luiz 了解如何通过 Apache Airflow 将数据导入 Elasticsearch。 Apache Airflow Apache Airflow 是一个旨在创建、安排(schedule)和监控工作流的平台。它用于编排 ETL(Extract-Transform-Load&#xff0…

通过图形界面展现基于本地知识库构建RAG应用

1. 客户需求 快速完成概念验证(PoC)通过图形界面快速完成演示本地私有数据对比不同模型和成本,决定如何部署 2. 阿里云基于本地知识库构建RAG应用 参考方案: 百炼本地知识库方案 解决方案: FastAPI Gradio Llamaindex qwen-plus 主要三大…

TP4056锂电池充放电芯片教程文章详解·内置驱动电路资源!!!

目录 TP4056工作原理 TP4056引脚详解 TP4056驱动电路图 锂电池充放电板子绘制 编写不易,仅供学习,感谢理解。 TP4056工作原理 TP4056是专门为单节锂电池或锂聚合物电池设计的线性充电器,充电电流可以用外部电阻设定,最大充电…

【Vim Masterclass 笔记21】S09L39:Vim 设置与 vimrc 文件的用法示例(二)

文章目录 S09L39 Vim Settings and the Vimrc File - Part 21 Vim 的配色方案与 color 命令2 map 命令3 示例:用 map 命令快速生成 HTML 代码片段4 Vim 中的 Leader 键5 用 mkvimrc 命令自动生成配置文件 写在前面 本篇为 Vim 自定义配置的第二部分。当中的每个知识…

论文速读|ParGo: Bridging Vision-Language with Partial and Global Views.AAAI25

论文地址:https://arxiv.org/abs/2408.12928 代码地址:https://github.com/bytedance/ParGo bib引用: misc{wang2025pargobridgingvisionlanguagepartial,title{ParGo: Bridging Vision-Language with Partial and Global Views}, author{An…

2024年博客之星年度评选—创作影响力评审入围名单公布

2024年博客之星活动地址https://www.csdn.net/blogstar2024 TOP 300 榜单排名 用户昵称博客主页 身份 认证 评分 原创 博文 评分 平均 质量分评分 互动数据评分 总分排名三掌柜666三掌柜666-CSDN博客1001002001005001wkd_007wkd_007-CSDN博客1001002001005002栗筝ihttps:/…

20250118拿掉荣品pro-rk3566开发板上Android13下在uboot和kernel启动阶段的Rockchip这个LOGO标识

20250118拿掉荣品pro-rk3566开发板上Android13下在uboot和kernel启动阶段的Rockchip这个LOGO标识 2025/1/18 15:12 缘起:做飞凌OK3588-C开发板/核心板【Linux R4】的时候,测试/生产要求没有开机LOGO【飞凌/Rockchip】 要求:黑屏或者中性界面。…

【转】厚植根基,同启新程!一文回顾 2024 OpenHarmony 社区年度工作会议精彩瞬间

在数字化浪潮奔腾不息的今天,开源技术已成为推动科技创新与产业发展的强大引擎。2025年1月10日-11日,OpenAtom OpenHarmony(开放原子开源鸿蒙,以下简称“OpenHarmony”或“开源鸿蒙”)社区2024年度工作会议于深圳盛大启…