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平台

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

相关推荐
碳基沙盒1 天前
OpenClaw 多 Agent 配置实战指南
运维
蝎子莱莱爱打怪4 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
埃博拉酱4 天前
VS Code Remote SSH 连接 Windows 服务器卡在"下载 VS Code 服务器":prcdn DNS 解析失败的诊断与 BITS 断点续传
windows·ssh·visual studio code
DianSan_ERP5 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
呉師傅5 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑
不是二师兄的八戒5 天前
Linux服务器挂载OSS存储的完整实践指南
linux·运维·服务器
zhangfeng11335 天前
趋动云 如何ssh登录 服务区 项目server
运维·人工智能·ssh
ZeroNews内网穿透5 天前
谷歌封杀OpenClaw背后:本地部署或是出路
运维·服务器·数据库·安全
失重外太空啦5 天前
nginx
运维·nginx
Gofarlic_oms15 天前
避免Kisssoft高级分析模块过度采购的科学评估方法
大数据·linux·运维·人工智能·matlab