首页 > 其他分享 >github添加ssh密钥,通过ssh方式推送代码

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

时间:2024-08-04 15:19:33浏览次数:16  
标签:github 私钥 rsa SSH 推送 id 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 [email protected]

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

$ ssh -T [email protected]
Hi alittlesir! You've successfully authenticated, but GitHub does not provide shell access.

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

git clone [email protected]:username/repo.git

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

git remote set-url origin [email protected]: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,私钥,rsa,SSH,推送,id,ssh
From: https://www.cnblogs.com/kiwiblog/p/18341759

相关文章

  • GitHub页面(实现贪吃蛇效果等)美化主页详细大全!
    1.引言        ......
  • SSH访问控制:精确管理你的服务器门户
    “在数字世界中,服务器的安全性是任何网络管理员的首要任务。特别是对于远程登录协议如SSH,确保只有授权用户可以访问是至关重要的。今天,记录两种有效的方法来控制用户对特定服务器的访问:通过sshd_config实现黑/白名单机制和利用DenyHosts工具。让咱们深入了解这些策略,......
  • github克隆项目到Visual Studio 2022出错怎么回事?
    到底咋回事啊?不同的方法有不同的出错方式。。。。先是选择"用vs打开",结果:然后选择自己输入,结果:救救我,找了各种方法,git也配置了邮箱,密钥也加到github设置里了,github网页用了watttllokit也能打开,怎么就是没法克隆呢,救救救,到底是哪里的错误?????......
  • GitHub每日最火火火项目(8.3)
    项目名称:opendatalab/MinerU项目介绍:MinerU是一个一站式开源高质量数据提取工具,支持PDF、网页和多格式电子书的提取。它为用户提供了便捷的方式来获取和整理各种来源的数据。无论是从文档中提取关键信息,还是从网页中抓取特定内容,MinerU都能发挥重要作用。该工具的开源性......
  • GitHub每日最火火火项目(8.2)
    1. 项目名称:opendatalab/MinerU项目介绍:MinerU是一个一站式开源高质量数据提取工具,它支持PDF、网页、多格式电子书的提取。该工具旨在为用户提供便捷的数据提取解决方案,使用户能够轻松地从各种来源获取所需的数据。无论是从文档中提取关键信息,还是从网页中抓取特定内容,Mi......
  • iTerm2配置ssh的免输入密码连接
    第一步    打开iTerm2,选择ITerm2->Settings进入设置页面后,点击Profiles,进入Profiles页面进入Profiles页面后点击+号,创建一个新的Profiles配置对新建的Profiles进行配置修改Name:主要是为了好区分不同的Profiles配置Command:这里有四个选项LoginShell、Comman......
  • Centos7,升级OpenSSH(亲测有效适用于小白)
    项目场景:OpenSSH升级,OpenSSH更新,OpenSSH漏洞修复漏洞信息:OpenSSH命令注入漏洞(CVE-2023-51385)以及日常运维升级openssh参考。注意!!!,如果本机未安装telnet建议打开多个SSH终端连接使用top避免设备断链,并安装telnet服务器,确保在SSH服务器升级异常时,可以通过telnet......
  • IDEA或Git推送项目到Gitee远程仓库
    新建仓库我的是Java项目,我就选的java创建完毕打开你项目的文件夹,里面若已经有了.git文件可能需要删除,可能会冲突然后初始化gitinit,配置用户名,邮箱,连接远程仓库 gitpulloriginmaster拉取更新一下本地库,此时可能会拉取失败,这时候你要检查你自己的本地库是不是和......
  • 嵌入式实习--MobaXterm连接开发板与SSH远端服务器详细使用教程
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、前期准备二、安装USB串口模块驱动1.1驱动未自动安装二、MobaXterm安装使用2.1MobaXterm软件安装2.2MobaXterm软件使用2.2.1连接开发板2.2.2远程SSH连接服务器前言在嵌入式Li......
  • Github 学生认证/ Copilot申请 (小白步骤)2024版
    1.完善个人信息1.1进入github官网https://github.com、按照下图的步骤、完善信息。1.2下面是具体的内容,只需要填写有箭头的部分内容就好,最后大家不要忘了点击保存。2.填加学校以.edu.com结尾的邮箱账号2.1添加后,你会在学校的企业微信上收到一条通知,按照信息提示......