廖雪峰的Git学习笔记-3-远程仓库-SSH配置-(⽣成ssh密钥)(ssh-keygen。。
。
Github - 远程仓库
远程仓库?
就是把你的代码放上⽹。
放上⽹的代码就有两个问题,别⼈读你代码?别⼈写你代码?
别⼈读你代码
放在⼀些公共仓库内(如github,gitee),你的代码⼈随意让⼈读。
当然,你也能设置⼀些限制,在公共仓库弄也写私⼈空间。
⽽要完全私⼈的远程仓库,你需要⾃⼰搭建。
现实是,现在看这⽂章的你,你的代码没⼈有空来读。。
所以,别⼈读你代码,不是你现在关⼼的。
别⼈改你代码
如果你的代码放在了⽹上,别⼈能随便改(虽然你的代码依然没⼈有空来改),但这也是很令⼈头疼的,也是绝对不允许的。
所以,github为修改代码专门设置了⼀道认证门槛,rsa认证。
完成这个认证,你就能随意改你公共远程库的代码了。
完成这个认证,是这需要⼀些配置的
配置
在继续阅读后续内容前,请⾃⾏注册GitHub账号。
由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要⼀点设置:
第1步:创建SSH Key。
在⽤户主⽬录下,看看有没有.ssh⽬录
(cd ~/.ssh 看看成不成功)
如果有,再看看这个⽬录下有没有id_rsa和id_rsa.pub这两个⽂件,如果已经有了,可直接跳到下⼀步。
如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
$ ssh-keygen -t rsa -C "youremail@example"
你需要把邮件地址换成你⾃⼰的邮件地址,
然后⼀路回车,使⽤默认值即可,
(由于这个Key也不是⽤于军事⽬的,所以也⽆需设置密码。)
代码参数含义:
-t 指定密钥类型,默认是 rsa ,可以省略。
-C 设置注释⽂字,⽐如邮箱。
-
f 指定密钥⽂件存储⽂件名。
以上代码省略了 -f 参数
因此,运⾏上⾯那条命令后会让你输⼊⼀个⽂件名
⽤于保存刚才⽣成的 SSH key 代码,如:
Generating public/private rsa key pair.
# Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter]
当然,你也可以不输⼊⽂件名,使⽤默认⽂件名(推荐),
那么就会⽣成 id_rsa和 id_rsa.pub两个秘钥⽂件。
《 SSH-keygen⽤法 》
keygen - 注册机
”/“是根⽬录,”~“是家⽬录。
如果⼀切顺利的话,可以在⽤户主⽬录⾥到.ssh⽬录,⾥⾯有id_rsa和id_rsa.pub两个⽂件
这两个就是SSH Key的秘钥对,
id_rsa是私钥,不能泄露出去,
id_rsa.pub是公钥,可以放⼼地告诉任何⼈。
第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页⾯:
然后,点“Add SSH Key”,填上任意Title,在Key⽂本框⾥粘贴id_rsa.pub⽂件的内容:
点“Add Key”,你就应该看到已经添加的Key:
第3步:连接成功?
在git Bash 中输⼊以下代码
$ ssh -T git@github
当你输⼊以上代码时,会有⼀段警告代码,如:
The authenticity of host 'github (207.97.227.239)' can't be established.
# RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
# Are you sure you want to continue connecting (yes/no)?
这是正常的,你输⼊ yes 回车既可。如果你创建 SSH key 的时候设置了密码,接下来就会提⽰你输⼊密码,如:
Enter passphrase for key '/c/Users/Administrator/.ssh/id_rsa':
当然如果你密码输错了,会再要求你输⼊,直到对了为⽌。
注意:输⼊密码时如果输错⼀个字就会不正确,使⽤删除键是⽆法更正的。git设置用户名和邮箱
密码正确后你会看到下⾯这段话,如:
Hi username! You've successfully authenticated, but GitHub does not
# provide shell access.
如果⽤户名是正确的,你已经成功设置SSH密钥。如果你看到 “access denied” ,者表⽰拒绝访问,那么你就需要使⽤ https 去访问,⽽不是 SSH 。
为什么GitHub需要SSH Key呢?
因为GitHub需要识别出你推送的提交确实是你推送的,⽽不是别⼈冒充的
⽽Git⽀持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你⾃⼰才能推送。
当然,GitHub允许你添加多个Key。假定你有若⼲电脑,你⼀会⼉在公司提交,⼀会⼉在家⾥提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
最后友情提⽰,在GitHub上免费托管的Git仓库,任何⼈都可以看到喔(但只有你⾃⼰才能改)。
所以,不要把敏感信息放进去。
如果你不想让别⼈看到Git库,有两个办法,
⼀个是交点保护费,让GitHub把公开的仓库变成私有的,这样别⼈就看不见了(不可读更不可写)。
另⼀个办法是⾃⼰动⼿,搭⼀个Git服务器,因为是你⾃⼰的Git服务器,所以别⼈也是看不见的。
(这个⽅法我们后⾯会讲到的,相当简单,公司内部开发必备。)
确保你拥有⼀个GitHub账号后,我们就即将开始远程仓库的学习。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论