GitHub配置SSH Key
前端向朔 人气:0https://github.com/xiangshuo1992/preload.git
git@github.com:xiangshuo1992/preload.git
这两个地址展示的是同一个项目,但是这两个地址之间有什么联系呢?
前者是https url 直接有效网址打开,但是用户每次通过git提交的时候都要输入用户名和密码,有没有简单的一点的办法,一次配置,永久使用呢?当然,所以有了第二种地址,也就是SSH URL,那如何配置就是本文要分享的内容。
GitHub配置SSH Key的目的是为了帮助我们在通过git提交代码是,不需要繁琐的验证过程,简化操作流程。
步骤
一、设置git的user name和email
如果你是第一次使用,或者还没有配置过的话需要操作一下命令,自行替换相应字段。
git config --global user.name "Luke.Deng" git config --global user.email "xiangshuo1992@gmail.com"
说明:git config --list 查看当前Git环境所有配置,还可以配置一些命令别名之类的。
二、检查是否存在SSH Key
cd ~/.ssh ls 或者 ll //看是否存在 id_rsa 和 id_rsa.pub文件,如果存在,说明已经有SSH Key
如下图
如果没有SSH Key,则需要先生成一下
ssh-keygen -t rsa -C "xiangshuo1992@gmail.com"
执行之后继续执行以下命令来获取SSH Key
cd ~/.ssh ls 或者 ll //看是否存在 id_rsa 和 id_rsa.pub文件,如果存在,说明已经有SSH Key
三、获取SSH Key
cat id_rsa.pub //拷贝秘钥 ssh-rsa开头
如下图
四、GitHub添加SSH Key
GitHub点击用户头像,选择setting
新建一个SSH Key
取个名字,把之前拷贝的秘钥复制进去,添加就好啦。
五、验证和修改
测试是否成功配置SSH Key
ssh -T git@github.com //运行结果出现类似如下 Hi xiangshuo1992! You've successfully authenticated, but GitHub does not provide shell access.
之前已经是https的链接,现在想要用SSH提交怎么办?
直接修改项目目录下 .git
文件夹下的config
文件,将地址修改一下就好了。
git地址获取可以看如下图切换。
验证原理
SSH登录安全性由非对称加密保证,产生密钥时,一次产生两个密钥,一个公钥,一个私钥,在git中一般命名为id_rsa.pub, id_rsa。
那么如何使用生成的一个私钥一个公钥进行验证呢?
本地生成一个密钥对,其中公钥放到远程主机,私钥保存在本地
当本地主机需要登录远程主机时,本地主机向远程主机发送一个登录请求,远程收到消息后,随机生成一个字符串并用公钥加密,发回给本地。本地拿到该字符串,用存放在本地的私钥进行解密,再次发送到远程,远程比对该解密后的字符串与源字符串是否等同,如果等同则认证成功。
总结
加载全部内容