Windows 配置github的SSH公钥注意事项

具体参考https://blog.youkuaiyun.com/fzxyxf1314/article/details/101541078?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-0-101541078-blog-79799581.pc_relevant_default&spm=1001.2101.3001.4242.1&utm_relevant_index=3
这一步非常重要,需要添加字段到文件夹~/.ssh/config中

Host github.com
HostName github.com
User git
Port 22
HostkeyAlgorithms +ssh-rsa
IdentityFile C:\Users\yourname/.ssh/id_rsa
PubkeyAcceptedAlgorithms +ssh-rsa

然后这一步非常重要
强调一下

将SSH 的密钥的路径 添加到ssh-agent中,这样才能被识别
然后将SSH key添加到ssh-agent:

ssh-add ~/.ssh/id_rsa

如果执行ssh-add时出现Could not open a connection to your authentication agent

在执行 ssh-add ~/.ssh/id_ras 时发生此错,

执行如下命令

ssh-agent bash

然后再执行

ssh-add ~/.ssh/id_ras 

即可。

如何使用SSH 进行git commit +push

在配置好SSH公钥后,将本地仓库文件夹中的.git文件中的config文件中的http的url修改为github仓库的ssh链接。
在这里插入图片描述

在这里插入图片描述
之后再使用git push 就不会报错Failed to connect to github.com port 443 after 21107 ms: Timed out 或者OpenSSL SSL_read: Connection was reset, errno 10054 了。
————————————————
版权声明:本文为优快云博主「argleary」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/argleary/article/details/100638560

### GitHub SSH 密钥对概念及私钥与公钥的作用 在使用 GitHub 进行代码管理时,SSH 密钥对是一个重要的安全机制。以下是关于 GitHubSSH 密钥对的概念以及私钥和公钥的作用的详细说明。 #### 1. SSH 密钥对的基本概念 SSH 密钥对由 **私钥** 和 **公钥** 组成,它们是一组加密密钥,用于验证用户身份并确保通信的安全性。通过为 Git 配置 SSH 密钥对,可以避免每次执行 Git 命令时都需要输入用户名和密码[^1]。 #### 2. 公钥的作用 公钥是公开的部分,它会被上传到 GitHub 的账户设置中。GitHub 使用公钥来验证用户的请求是否来自持有对应私钥的设备。公钥的主要作用如下: - **身份验证**:当用户尝试通过 SSH 访问 GitHub 时,GitHub 使用公钥验证用户的身份。 - **安全性**:由于公钥本身不包含敏感信息,因此可以安全地存储在远程服务器上。 例如,在生成 SSH 密钥对时,可以通过以下命令指定邮箱地址作为标识: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 这里的 `-C` 参数用于添加注释(通常是用户的邮箱地址),以便于识别密钥的用途[^2]。 #### 3. 私钥的作用 私钥是保密的部分,必须安全地存储在用户的本地设备上。它是用来解密由公钥加密的数据,并且用于证明用户的身份。私钥的主要作用如下: - **身份证明**:当用户尝试访问 GitHub 时,私钥用于生成签名,以证明用户的身份。 - **数据完整性**:私钥还用于确保通信过程中数据的完整性和真实性。 重要的是,**私钥不应被泄露或共享**,否则可能会导致未经授权的访问。 #### 4. SSH 密钥对的工作原理 当用户通过 SSH 连接到 GitHub 时,整个过程大致如下: 1. 用户的本地设备使用私钥生成一个签名。 2. 该签名连同用户的请求一起发送到 GitHub。 3. GitHub 使用存储的公钥验证签名的有效性。 4. 如果签名有效,则允许用户访问其账户中的资源。 #### 5. 同一邮箱生成多个 SSH 密钥对 如果用户希望在同一台设备上同时连接到多个服务(如 GitHub 和 Gitee),并且这些服务使用相同的邮箱地址注册,则可以为每个服务生成不同的 SSH 密钥对,并通过配置文件区分它们。例如,可以在 `~/.ssh/config` 文件中添加以下内容: ```bash Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa_github Host gitee.com HostName gitee.com User git IdentityFile ~/.ssh/id_rsa_gitee ``` 这样,系统会根据目标主机自动选择正确的私钥进行身份验证[^2]。 ### 示例代码 以下是一个生成 SSH 密钥对并将其添加到 GitHub 的示例: 1. 生成 SSH 密钥对: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 2. 将公钥复制到剪贴板: ```bash cat ~/.ssh/id_rsa.pub ``` 3. 登录到 GitHub 账户,进入“Settings” -> “SSH and GPG keys”,点击“New SSH key”,并将公钥粘贴到文本框中。 #### 注意事项 - 确保私钥文件的权限正确,通常应设置为仅对当前用户可读: ```bash chmod 600 ~/.ssh/id_rsa ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值