当前位置: 首页 > news >正文

github添加ssh密钥,通过ssh方式推送代码

左手编程,右手年华。大家好,我是一点,关注我,带你走入编程的世界。 公众号:一点sir,关注领取python编程资料

很多人在使用github的时候,如果还是使用https的方式推送代码的话,可能会发现推送不上去,官方会建议你使用ssh的方式进行代码推送。通过ssh方式推送代码,速度更快,更高效,而且还不用每次输密码,缺点就是要在你自己的本机以及github上面做一些配置。这些配置并不难,很简单,前期花一点点时间,可以避免很多繁琐的事情。

本机生成密钥

如果你的计算机上还没有 SSH 密钥,你需要生成一对新的 SSH 密钥。

如果你是在linux机器上,直接执行以下命令,要是window机器的话,打开cmd或者powershell窗口,执行以下命令

ssh-keygen -t rsa -b 4096 -C "xxx"

其中字符xxx你可以任意的填写,很多人说是填写你gihtub上面的邮箱或者账号,实际不用,可以任意填写,这个就相当于注释,不用纠结这个。

ssh-keygen -t rsa -b 4096 -C "xxx" -f id_rsa_alittlesir
  • 运行 ssh-keygen 时,系统会询问你是否要更改密钥的位置。默认位置通常是好的。
  • 系统还会询问你是否要输入密码短语来保护你的私钥。输入输入密码短语是可以增加安全性,但在每次使用 SSH 密钥时都需要输入密码,可能就变得不方便了。

如果你想在一台机器上生成多个id_ras公玥的话,或者机器是你和别人共用的话,也就是说你想在一台机器上ssh到多个自己的账号,那么可以通过-f命令重命名一下生成的id_rsa文件名,记住这种方式生成的id_rsa文件是在当前目录下。比如我上面就在当前目录下生成了两个文件

id_rsa_alittlesir
id_rsa_alittlesir.pub

当然你可以加上路径,指定生成的目录下,记得路径要加上引号。

ssh-keygen -t rsa -b 4096 -C "xxx" -f "C:\Users\alittlesir\.ssh\id_rsa_alittlesir"

id_rsa_alittlesir是私玥,id_rsa_alittlesir.pub是公钥,公玥上的内容是填写在服务器上的,如果是提交到gitee或者github上面的话,就需要就那上面去配置公玥,记住,这里的意思是把公玥上的内容复制到github上,至于复制的地方,下面会说。而私玥是自己本地使用,不用动。

Github配置

本机上生成了密钥后,现在就需要到github上面去配置填写下你生成的公玥内容,以下就是详细的步骤。

1、打开github,点击setting按钮,进入设置界面。

2、找到左侧栏的SSH keys and GPG keys,进入SSH的界面,填写公玥相关信息。

3、点击New SSH keys,添加SSH key的公玥

4、其中Title随便填写,Key type保持不变,Key的内容就是填写你生成的公玥内容,也就是id_rsa_tianya85.pub的内容,直接复制就好。

这样你就在你的github账号上生成了一个ssh key,那么你在客户端进行推送的时候,就不需要密码了。

检查配置

添加完公玥之后,你也可以检查一下,配置是否成功了,很简单,直接通过以下命令即可。

ssh -T git@github.com

如果输出以下内容,那么配置就是可以的。

$ ssh -T git@github.com
Hi alittlesir! You've successfully authenticated, but GitHub does not provide shell access.

最后要记得,通过ssh方式clone代码的时候,HTTPS的URL你需要更改它为SSH的URL,这个在github上面是有这个的。

git clone git@github.com:username/repo.git

如果你的仓库当前使用的是 HTTPS URL,你需要更改它为 SSH URL。

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

原理解释

当配置了 SSH 密钥对之后,就不需要在每次通过 SSH 连接到远程服务器时输入密码,这是因为 SSH 提供了一种基于公钥的身份验证机制。

1、密钥对生成
当在本地计算机上运行 ssh-keygen 命令时,会生成一对密钥:一个私钥(例如 id_rsa)和一个公钥(例如 id_rsa.pub)。私钥存储在我们的本地计算机上,而公钥则被添加到要访问的远程服务器(如 GitHub)。

2、公钥分发
将公钥上传到 GitHub 的账户设置中,告诉 GitHub 你的公钥对应于你的私钥,这是一一对应关系的。

3、认证过程
当我们试图通过SSH连接到 GitHub 时,GitHub 会发送一个只有持有相应私钥的人才能解密的信息给你的客户端。你的客户端使用你的私钥解密该信息,并将其发送回 GitHub。GitHub 验证解密后的信息与原始信息匹配,并确认它是由你的私钥解密的。如果验证成功,GitHub 就会允许你进行通信。

因为 SSH 密钥对是成对出现的,公钥和私钥之间有数学上的关联,这意味着:

  • 只有私钥持有者能够解密由公钥加密的信息。
  • 公钥可以自由分发,因为它不能用于解密由自己加密的信息。

因此,一旦你的 SSH 公钥已经添加到了 GitHub,并且你的私钥安全地存储在你的计算机上,你就可以通过 SSH 连接到 GitHub 而无需输入密码。

需要注意的是,如果我们在生成密钥时设置了密码短语(passphrase),那么在每次使用私钥之前,你需要输入这个密码短语来解锁私钥。为了方便起见,你可以使用 SSH 代理(如 ssh-agentPageant)来管理私钥,这样在你的一次会话中,只需要输入一次密码短语即可。

相关文章:

github添加ssh密钥,通过ssh方式推送代码

左手编程,右手年华。大家好,我是一点,关注我,带你走入编程的世界。 公众号:一点sir,关注领取python编程资料 很多人在使用github的时候,如果还是使用https的方式推送代码的话,可能会…...

Python设计模式 - 抽象工厂模式

定义 抽象工厂模式是一种创建型设计模式,它提供了一种创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 产品等级结构与产品族 为了更好地理解抽象工厂模式,先引入两个概念: 产品等级结构:就是产品的…...

【JavaEE初阶】懒汉模式与饿汉模式及指令重排序问题

目录 📕 单例模式 🌳 饿汉模式 🚩 线程安全 🎍 懒汉模式 🚩 懒汉模式-单线程版 🚩 懒汉模式-多线程版 🎄 指令重排序 📕 单例模式 单例模式是一种经典的设计模式,…...

Vue3使用Cascader 级联选择器如何获取值并提交信息

我写了一个用户对象&#xff0c;有address地址字段&#xff0c;我怎么将用户选择的级联数据selectedValue值传给address&#xff0c;并将对象返回给后端&#xff0c;核心代码实现了该问题。 <script> 核心代码&#xff1a; //获取住址并更新给addresslet selectedValue…...

Python面试整理-第三方库

Python社区提供了大量的第三方库,这些库扩展了Python的功能,覆盖了从数据科学到网络应用开发等多个领域。以下是一些非常流行和广泛使用的第三方库: 1. NumPy ● 用途:数值计算。 ● 特点:提供了一个强大的N维数组对象和大量用于数学运算的函数。 ● 应用场景:科学计算、…...

电脑添加虚拟网卡与ensp互联,互访

一、按照过程 1、打开设备管理器 2、点击网络适配器&#xff0c;点击左上角操作&#xff0c;点击“添加过时硬件” 3、下一页 4、选择“安装我手动从列表选择的硬件”&#xff0c;下一页 5、下拉&#xff0c;选择“网络适配器”&#xff0c;下一页 6、厂商选择“Microsoft”&…...

悬而未决:奇怪的不允许跨域CORS policy的问题

我在本地HBuilderX中进行预览写好的前端网页&#xff0c;它里面用了ajax访问了远程服务器的后端API网址&#xff0c;不出意外地报不允许跨域访问的错了&#xff1a;Access to XMLHttpRequest at ‘http://xxx.com/MemberUser/login’ from origin ‘http://mh.com’ has been b…...

索引优化秘籍:SQL Server数据库填充因子的调优艺术

索引优化秘籍&#xff1a;SQL Server数据库填充因子的调优艺术 在SQL Server的性能优化中&#xff0c;索引起着至关重要的作用。而索引填充因子&#xff08;Fill Factor&#xff09;则是控制索引页填充程度的重要参数&#xff0c;它直接影响索引的存储效率和查询性能。本文将深…...

ffmpeg 的内存分配架构

------------------------------------------------------------ author: hjjdebug date: 2024年 08月 01日 星期四 18:00:47 CST descripton: ffmpeg 的内存分配架构1 ------------------------------------------------------------ ffmpeg 的内配分配搞的人晕菜&#…...

Vue+live2d实现虚拟人物互动(一次体验叙述)

目录 故事的开头&#xff1a; 最终的实现效果&#xff1a; 实现步骤&#xff1a; 第一步&#xff1a;下载重要文件 第二步&#xff1a;创建vue项目文件&#xff0c;将刚下载文件拷贝到public目录下 第三步&#xff1a;在index.html文件中引入js 第四步&#xff1a;使用&…...

内联函数的概念和用途以及区别

内联函数&#xff08;Inline Function&#xff09;是C&#xff08;以及C99之后的C语言&#xff09;中的一个特性&#xff0c;旨在通过减少函数调用的开销来提高程序的执行效率。在正常情况下&#xff0c;当程序调用一个函数时&#xff0c;会发生一系列的操作&#xff0c;包括保…...

rust 桌面 sip 软电话(基于tauri 、pjsip库)

本文尝试下rust 的tauri 桌面运用 原因在于体积小 1、pjsip 提供了rust 接口官方的 rust demo 没编译出来 在git找了个sip-phone-rs-master https://github.com/Charles-Schleich/sip-phone-rs 可以自己编译下pjsip lib库替换该项目的lib 2、创建一个tauri demo 引用 [depe…...

Linux 进程优先级、程序地址空间、进程控制

个人主页&#xff1a;仍有未知等待探索-CSDN博客 专题分栏&#xff1a; Linux 目录 一、进程优先级 1、什么是进程优先级&#xff1f; 2、为什么要有优先级&#xff1f; 3、Linux的优先级特点、查看方式 4、命令行参数和环境变量 1.命令行参数 2.环境变量 获取环境变量的…...

学习笔记一

vector 在创建时指定初始大小和初始值&#xff1a; vector<int> a(5, 1) // 包含 5 个整数的 vector&#xff0c;每个值都为 1 可以使用 push_back 方法向 vector 中添加元素&#xff1a; a.push_back(7) // 将整数 7 添加到 vector 的末尾 可以使用 size(…...

Linux中信号的发送及信号的自定义捕捉方法

预备知识&#xff1a; 信号产生时进程早已知道该信号如何处理。 信号产生时进程可能并不能立即处理信号而是等到合适的时候处理。 信号其他相关常见概念 实际执行信号的处理动作称为信号递达(Delivery) 信号从产生到递达之间的状态,称为信号未决(Pending)。 进程可以选择阻…...

yum仓库的制作与使用

目录 前言&#xff1a; 1 查看系统内核 2 获取网络源 3 搭建yum网络仓库 4 rpm包的下载 4.1 将rpm包下载至本地 4.2 对下载的rpm包进行备份 5 制作本地yum源 5.1 软件仓库制作工具createrepo 5.2 使用createrepo创建本地yum仓库 6 搭建docker本地仓库 前言&#x…...

牛客周赛54:D.清楚姐姐跳格子(bfs)

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述 \,\,\,\,\,\,\,\,\,\,老妪遂递一羊皮卷轴&#xff0c;上面什么都没有&#xff0c;清楚欲问&#xff0c;老妪却缄口不言。           \,\,\,\,\,\,\,\,\,\,清楚性格刚直&…...

用户空间 lmkd

用户空间 lmkd 1、概览1.1 配置lmkd 2、lmkd2.1 lmkd启动2.2 时序图 Android LowMemoryKiller原理分析 AOSP>文档>核心主题低内>存终止守护程序 1、概览 Android Low Memory Killer Daemon &#xff1a;system/memory/lmkd/README.md Android 低内存终止守护程序 (lm…...

二叉树专题

Leetcode 104. 二叉树的最大深度 class Solution { public:int maxDepth(TreeNode* root) {if(!root) return 0;int leftd maxDepth(root -> left) 1;int rightd maxDepth(root -> right) 1;return max(leftd, rightd);} }; Leetcode 100. 相同的树 class Solution…...

Spring MVC 之简介及常见注解

一、什么是 Spring MVC Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架&#xff0c;从一开始就包含在 Spring 框架中。它的正式名称 “Spring Web MVC” 来自其源模块的名称 (Spring-webmvc)&#xff0c;但它通常被称为"Spring MVC"。 什么是Servlet呢? S…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

算法:模拟

1.替换所有的问号 1576. 替换所有的问号 - 力扣&#xff08;LeetCode&#xff09; ​遍历字符串​&#xff1a;通过外层循环逐一检查每个字符。​遇到 ? 时处理​&#xff1a; 内层循环遍历小写字母&#xff08;a 到 z&#xff09;。对每个字母检查是否满足&#xff1a; ​与…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...