×

注意!页面内容来自https://blog.csdn.net/weixin_42310154/article/details/118340458,本站不储存任何内容,为了更好的阅读体验进行在线解析,若有广告出现,请及时反馈。若您觉得侵犯了您的利益,请通知我们进行删除,然后访问 原网页

Github配置ssh key的步骤(大白话+包含原理解释)

本文详细介绍如何在GitHub上配置SSHKey,包括生成密钥、添加公钥等步骤,并解释了SSHKey的工作原理及其为何能实现无密码操作。
该文章已生成可运行项目,


前言

在github上配置ssh key很容易,网上一大堆教程,但基本没有详细解释其原理的,为什么要配?每使用一台主机都要配?配了为啥就不用密码了?下面将简单通俗地解释一下。

我们在往github上push项目的时候,如果走https的方式,每次都需要输入账号密码,非常麻烦。而采用ssh的方式,就不再需要输入,只需要在github自己账号下配置一个ssh key即可。


配置SSH

git使用SSH配置, 初始需要以下三个步骤

  1. 使用秘钥生成工具生成rsa秘钥和公钥
  2. 将rsa公钥添加到代码托管平台
  3. 将rsa秘钥添加到ssh-agent中,为ssh client指定使用的秘钥文件

具体操作如下:

第一步:检查本地主机是否已经存在ssh key
cd ~/.ssh
ls
//看是否存在 id_rsa 和 id_rsa.pub文件,如果存在,说明已经有SSH Key

如下图所示,则表明已经存在
在这里插入图片描述
如果存在,直接跳到第三步

第二步:生成ssh key

如果不存在ssh key,使用如下命令生成

ssh-keygen -t rsa -C "[email protected]"
//执行后一直回车即可

生成完以后再用第二步命令,查看ssh key

第三步:获取ssh key公钥内容(id_rsa.pub)
cd ~/.ssh
cat id_rsa.pub

如下图所示,复制该内容
在这里插入图片描述

第四步:Github账号上添加公钥

进入Settings设置
在这里插入图片描述
添加ssh key,把刚才复制的内容粘贴上去保存即可
在这里插入图片描述

第五步:验证是否设置成功
ssh -T [email protected]

显示如下信息表明设置成功
在这里插入图片描述
设置成功后,即可不需要账号密码clone和push代码

注意之后在clone仓库的时候要使用ssh的url,而不是https!


验证原理

SSH登录安全性由非对称加密保证,产生密钥时,一次产生两个密钥,一个公钥,一个私钥,在git中一般命名为id_rsa.pubid_rsa。

那么如何使用生成的一个私钥一个公钥进行验证呢?

  • 本地生成一个密钥对,其中公钥放到远程主机,私钥保存在本地
  • 当本地主机需要登录远程主机时,本地主机向远程主机发送一个登录请求,远程收到消息后,随机生成一个字符串并用公钥加密,发回给本地。本地拿到该字符串,用存放在本地的私钥进行解密,再次发送到远程,远程比对该解密后的字符串与源字符串是否等同,如果等同则认证成功。

通俗解释!!

重点来了:一定要知道ssh key的配置是针对每台主机的!,比如我在某台主机上操作git和我的远程仓库,想要push时不输入账号密码,走ssh协议,就需要配置ssh key,放上去的key是当前主机的ssh公钥。那么如果我换了一台其他主机,想要实现无密登录,也就需要重新配置。

下面解释开头提出的问题:
(1)为什么要配?
配了才能实现push代码的时候不需要反复输入自己的github账号密码,更方便
(2)每使用一台主机都要配?
是的,每使用一台新主机进行git远程操作,想要实现无密,都需要配置。并不是说每个账号配一次就够了,而是每一台主机都需要配。
(3)配了为啥就不用密码了?
因为配置的时候是把当前主机的公钥放到了你的github账号下,相当于当前主机和你的账号做了一个关联,你在这台主机上已经登录了你的账号,此时此刻github认为是该账号主人在操作这台主机,在配置ssh后就信任该主机了。所以下次在使用git的时候即使没有登录github,也能直接从本地push代码到远程了。当然这里不要混淆了,你不能随意push你的代码到任何仓库,你只能push到你自己的仓库或者其他你有权限的仓库!

本文章已经生成可运行项目
确定要放弃本次机会?
福利倒计时
: :

立减 ¥

普通VIP年卡可用
立即使用
46 条评论 您还未登录,请先 登录 后发表或查看评论
要在GitHub配置SSH公钥,您可以按照以下步骤进行操作: 1. 首先,确保您已经生成SSH密钥对。您可以使用命令`ssh-keygen`来生成密钥对。\[1\] 2. 检查是否已经存在SSH密钥。您可以使用命令`ls -al ~/.ssh`来查看是否存在`id_rsa`和`id_rsa.pub`这两个文件。\[1\] 3. 如果不存在SSH密钥,您可以使用命令`ssh-keygen -t rsa -b 4096 -C "[email protected]"`来创建新的SSH密钥。在这个命令中,将`[email protected]`替换为您在GitHub上注册的电子邮件地址。\[1\] 4. 获取SSH公钥的内容。您可以使用命令`cat ~/.ssh/id_rsa.pub`来查看公钥的内容。\[1\] 5. 复制SSH公钥到GitHub。登录到GitHub账号,点击右上角的头像,选择"Settings",然后选择"SSH and GPG keys"。点击"New SSH key",将之前获取到的公钥内容粘贴到"Key"字段中,并为该密钥提供一个描述性的标题。最后,点击"Add SSH key"按钮保存配置。\[1\] 6. 验证是否设置成功。您可以使用命令`ssh -T git@github.com`来验证是否成功连接到GitHub。如果您看到一条欢迎消息,表示您已成功配置SSH公钥。\[1\] 需要注意的是,SSH密钥的配置是针对每台主机的。如果您在不同的主机上操作GitHub,您需要在每台主机上重新配置SSH密钥。\[2\]配置SSH公钥的目的是为了实现无密码登录,方便在GitHub上进行操作而无需每次输入账号密码。\[3\] #### 引用[.reference_title] - *1* [github ssh密钥配置](https://blog.csdn.net/inthat/article/details/109406553)[ data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Github配置ssh key步骤大白话+包含原理解释)](https://blog.csdn.net/weixin_42310154/article/details/118340458)[ data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
### Git安装 在获取Git之前,可查看以上参考资料,如Git安装配置教程(小白保姆教程2024最新版)[^1]、Git安装,配置,及使用一步到位教程等都提及了安装相关内容,不过具体安装步骤可能在不同系统中存在差异。你可以通过特定的Git镜像网址进行下载安装,详细信息可查看Git镜像网址及其下载安装教程相关文章[^1]。 ### Git配置 - **配置用户名和邮箱**:为了让Git能够识别提交者的身份,需要配置用户名和邮箱。配置用户名和邮箱的命令如下,可将用户名和邮箱替换为自己在Git仓库中的信息: ```bash git config --global user.name "your_username" git config --global user.email "[email protected]" ``` 如引用提到的配置示例:指定用户名为laptoy,邮箱为[email protected],对应的命令为 ```bash git config --global user.name laptoy git config --global user.email [email protected] ``` 这里需要注意,用户名要和Git仓库账户名一致,邮箱也要和Git仓库注册邮箱一致[^2][^3]。 - **配置ssh密钥和远程仓库链接**:配置ssh密钥可以让你更安全便捷地与远程仓库进行交互。具体配置步骤可参考Github配置ssh key步骤大白话 + 包含原理解释) - CSDN博客等相关资料,一般来说,需要生成SSH密钥,然后将公钥添加到GitHub等远程仓库的账户设置中,这样在后续操作中就可以通过SSH进行免密操作了[^1]。 ### Git使用 Git的使用涉及众多操作,如克隆仓库、提交代码、拉取代码等。 - **克隆远程仓库**:如果要将远程仓库的代码复制到本地,可以使用`git clone`命令,例如: ```bash git clone git@github.com:username/repo.git ``` 其中`git@github.com:username/repo.git`是远程仓库的SSH地址,`username`是仓库所有者的用户名,`repo`是仓库名。 - **添加文件到暂存区**:当你在本地对代码进行修改后,需要先将修改的文件添加到暂存区,使用`git add`命令: ```bash git add filename ``` 若要添加所有修改的文件,可使用: ```bash git add . ``` - **提交暂存区的文件到本地仓库**:添加到暂存区后,需要将这些修改提交到本地仓库,使用`git commit`命令: ```bash git commit -m "commit message" ``` 其中`"commit message"`是本次提交的描述信息,应简要说明修改的内容。 - **推送本地仓库的修改到远程仓库**:将本地仓库的修改推送到远程仓库,使用`git push`命令: ```bash git push origin main ``` 这里`origin`是远程仓库的别名,`main`是要推送的分支名。 - **拉取远程仓库的最新代码到本地**:当远程仓库有新的代码更新时,需要将其拉取到本地,使用`git pull`命令: ```bash git pull origin main ```
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
点击重新获取
扫码支付
< type="text/css">
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值