记性不好,记录一下~
先解个惑:为什么要公钥和私钥
我在csdn上找了一个比较好的答案:
- git帮我们生成的是不对称的一对密钥,GIT服务器上存储的是公钥,本地存储的是私钥,当你push本地代码库到远程代码库,服务器会要求你出示私钥,并且用你出示的私钥和它的公钥配对来完成认证。由于使用的是不对称加密,所以公钥可以公开,只要保管好私钥就可以。
- 路人甲只要没有私钥,所以无法push。这样才能保证开源项目的完整性,否则阿猫阿狗都去push代码,那项目不就乱套了?如果路人甲想对你的项目做出贡献,那么以GITHUB为例,他会发送一个pull request给你,然后由你来审核他作出的改变,如果审核通过,那么你就可以将他的pull request合并到你工程的某一分支中。这里只以GITHUB为例,私有的GIT服务器可能没有类似功能,比如GITLAB就没有pull request。
msysgit生成密钥及github配置
步骤如下:
首先肯定是装了 msysgit
打开 git bash 输入命令:cd ~/.ssh,转跳到当前用户名下的.ssh目录下,比如 Administrator用户就会跳到C:\Users\Administrator.ssh 目录(这个目录是用来放密钥的文件路径,其实这步可以省略,密钥默认会生成在这个目录)
输入命令 ssh-keygen -t rsa -C “your_email@youremail.com”,系统就会提示:
Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa):
然后一路回车就可以了~
系统信息如下:
查看密钥指令:cat ~/.ssh/id_rsa.pub
登录 github ,点击账号,Personal settings > ssh and GPG keys > new ssh key,填写 title 和 key(id_rsa.pub内的信息)
TortoiseGit配置密钥
不习惯git直接的命令行,就直接用tortoisegit,配置密钥也不复杂。
TortoiseGit 使用扩展名为ppk的密钥,而不是ssh-keygen生成的rsa密钥。
使用命令ssh-keygen -C “邮箱地址” -t rsa产生的密钥在TortoiseGit中不能用。而基于git的开发必须要用到rsa密钥,因此需要用到TortoiseGit的putty key generator工具来生成既适用于git的rsa密钥也适用于TortoiseGit的ppk密钥。
具体配置步骤如下:
运行TortoiseGit开始菜单中的puttygen程序
点击“Generate”按钮,鼠标在上图的空白地方来回移动直到进度条完毕,就会自动生一个随机的key
将上图中多行文本框的内容全选、复制,并粘贴到git账户的 SSH public key中,这就是适用于git的公钥
点击上图中的“Save private key”按钮,将生成的key保存为适用于TortoiseGit的私钥(扩展名为.ppk)。
运行TortoiseGit开始菜单中的Pageant程序,程序启动后将自动停靠在任务栏中,图标显示为
,双击该图标,弹出key管理列表,如下
点击上图中的“Add Key”按钮,将第4步保存的ppk私钥添加进来,关闭对话框即可
ok,这篇写的好详细,我自己撸了一遍,估计小白看了都会了。