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

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

相关推荐
可可嘻嘻大老虎16 小时前
nginx无法访问后端服务问题
运维·nginx
阳光九叶草LXGZXJ17 小时前
达梦数据库-学习-47-DmDrs控制台命令(LSN、启停、装载)
linux·运维·数据库·sql·学习
无忧智库17 小时前
某市“十五五“地下综合管廊智能化运维管理平台建设全案解析:从数字孪生到信创适配的深度实践(WORD)
运维·智慧城市
珠海西格17 小时前
“主动预防” vs “事后补救”:分布式光伏防逆流技术的代际革命,西格电力给出标准答案
大数据·运维·服务器·分布式·云计算·能源
阿波罗尼亚18 小时前
Kubectl 命令记录
linux·运维·服务器
IDC02_FEIYA18 小时前
Linux文件搜索命令有哪些?Linux常用命令之文件搜索命令find详解
linux·运维·服务器
犀思云18 小时前
如何通过网络即服务平台实现企业数字化转型?
运维·网络·人工智能·系统架构·机器人
江畔何人初18 小时前
kubectl apply与kubectl create的区别
linux·运维·云原生
M1582276905519 小时前
四通道全能组网!SG-Canet-410 CAN转以太网网关,破解工业CAN通信瓶颈
linux·运维·服务器
浪客灿心20 小时前
Linux库制作与原理
linux·运维·服务器