Windows上完成SSH密钥的添加

私钥与公钥的核心定义

私钥(Private Key)和公钥(Public Key)是一对由加密算法(如RSA、ECC等)生成的"密钥对",二者存在严格的数学关联,但具备"单向不可逆"特性------通过公钥无法推导出私钥,而通过私钥可轻松生成对应的公钥。

1. 私钥:绝对保密的"个人密钥"

私钥是密钥对中"保密"的一方,必须由持有者严格保管,不能泄露给任何第三方。私钥的核心作用是"签名"和"解密"------只有持有私钥的人,才能对数据进行有效签名(证明身份),或解密用对应公钥加密的数据。

2. 公钥:可公开的"验证密钥"

公钥是由私钥推导而来的"公开"密钥,相当于你的"数字地址",可以放心地分享给任何人。

公钥的核心作用是"验证签名"和"加密"------任何人都可以用你的公钥加密数据

使用SSH方式和远程仓库通信

1,查看本地是否存有密钥信息

打开Git Bash,然后输入一下命令:

bash 复制代码
ls -al ~/.ssh

查看输出结果,如果看到类似 id_rsa.pub的文件,说明你已经有一个 SSH 密钥。

如果没有这些文件,或者你想创建一个新的密钥,请继续往下看。

2,生成新的密钥

在Git Bash中,使用以下命令来生成一个新的密钥:

bash 复制代码
// ssh-keygen(SSH密钥生成器) -t rsa (指定密钥算法为RSA(非对称加密算法))
// -b 4096 (指定密钥长度为4096位(安全性相关)) -C (给密钥添加注释,建议用邮箱)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

回车后,系统会提示你选择保存密钥的路径。默认路径为 ~/.ssh/id_rsa,然后直接按回车即可。

接下来会提示你设置一个密码(可选)。如果你不想设置密码,建议直接按两次回车跳过。

最后,你会看到类似以下的输出:

bash 复制代码
Your identification has been saved in ~/.ssh/id_rsa.
Your public key has been saved in ~/.ssh/id_rsa.pub.
The key fingerprint is:

3,启动 SSH 代理

SSH 代理是一个在后台运行的程序,用于管理你的 SSH 密钥。

在 Git Bash 中输入以下命令来启动 SSH 代理:

bash 复制代码
eval "$(ssh-agent -s)"

如果成功启动,你会看到类似以下的输出:

bash 复制代码
Agent pid 5287

4,将 SSH 私钥添加到 SSH 代理

输入以下命令将私钥添加到 SSH 代理:

bash 复制代码
ssh-add ~/.ssh/id_rsa

id_rsa可能需要替换为其他对应的文件名。

如果设置了密码,系统会提示你输入密码。

5,复制 SSH 公钥

直接使用cat 命令查看文件内容,并将文件内容全部复制一下。

公钥的内容类似于:

bash 复制代码
ssh-rsa AAAAB3NzaC1yc2... your_email@example.com

以下不同的平台有不同的操作,如Gitee,以及Github:

1,Gitee

首先注册并登录Gitee平台

鼠标放在右上角头像处会弹出设置选项

点击进入设置然后找到以下内容:

点击进去之后,在下图展示信息处填写信息(标题自定义,公钥处粘贴刚刚复制的内容即可)

添加完成后创建文件夹并初始化git仓库,然后执行以下命令:

bash 复制代码
git remote add origin git@github.com:username/repository.git

其中:git@github.com:username/repository.git换成下图中自己仓库的内容

上述按钮中SSH选项中的第一个链接,内容类似上述链接。

成功后尝试一下命令:

bash 复制代码
git pull origin master(此处可能需要根据自己的分支进行修改)

如果发现成功将远程仓库中的内容拉取了下来,那么恭喜,连接成功了。那么创建新文件然后提交仓库也不是问题了。

HTTPS方式和上述方式类似,不过省去了配置密钥的过程,如果是第一次尝试,应该需要输入自己的Gitee的账号和密码。

GitHub和Gitee的操作过程是一模一样的。添加完成密钥之后就可以完成上述指令。

总结:

生成密钥

启动SSH代理

将SSH私钥添加到SSH代理

将公钥配置到Git平台

然后可以进行远程仓库的拉取和推送

相关推荐
正在学习前端的---小方同学31 分钟前
Harbor部署教程
linux·运维
牛奔1 小时前
Docker Compose 两种安装与使用方式详解(适用于 Docker 19.03 版本)
运维·docker·云原生·容器·eureka
翼龙云_cloud2 小时前
阿里云渠道商:如何手动一键扩缩容ECS实例?
运维·服务器·阿里云·云计算
DX_水位流量监测3 小时前
大坝安全监测之渗流渗压位移监测设备技术解析
大数据·运维·服务器·网络·人工智能·安全
电商API&Tina3 小时前
京东 API 数据采集接口接入与行业分析
运维·服务器·网络·数据库·django·php
Mr_Xuhhh3 小时前
博客标题:深入理解Shell:从进程控制到自主实现一个微型Shell
linux·运维·服务器
weixin_462446236 小时前
K8s 集群部署基础:Linux 三节点 SSH 互信(免密登录)配置指南
linux·kubernetes·ssh
f***24116 小时前
高效自动化管理临时文件的技术方案
运维·自动化
m0_738120727 小时前
应急响应——知攻善防靶场Linux-1详细应急过程
linux·运维·服务器·网络·web安全·ssh
obboda7 小时前
磁盘管理(MBR、LVM)
运维·5g