就是把你的代码放上网。
放上网的代码就有两个问题,别人读你代码?别人写你代码?
别人读你代码
放在一些公共仓库内(如github,gitee),你的代码人随意让人读。
当然,你也能设置一些限制,在公共仓库弄也写私人空间。
而要完全私人的远程仓库,你需要自己搭建。
现实是,现在看这文章的你,你的代码没人有空来读。。
所以,别人读你代码,不是你现在关心的。
别人改你代码
如果你的代码放在了网上,别人能随便改(虽然你的代码依然没人有空来改),但这也是很令人头疼的,也是绝对不允许的。
所以,github为修改代码专门设置了一道认证门槛,rsa认证。
完成这个认证,你就能随意改你公共远程库的代码了。
完成这个认证,是这需要一些配置的
Git
仓库和GitHub
仓库之间的传输是通过SSH加密
的,所以,需要一点设置:在用户主目录下,看看有没有.ssh
目录
(cd ~/.ssh
看看成不成功)
id_rsa
和id_rsa.pub
这两个文件,如果已经有了,可直接跳到下一步。Shell
(Windows下打开Git Bash
),创建SSH Key:$ ssh-keygen -t rsa -C "[email protected]"
你需要把邮件地址换成你自己的邮件地址,
然后一路回车,使用默认值即可,
(由于这个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用法 》https://www.cnblogs.com/yanglang/p/9563496.html
keygen - 注册机
”/“是根目录,”~“是家目录。
如果一切顺利的话,可以在用户主目录里找到.ssh
目录,里面有id_rsa
和id_rsa.pub
两个文件
这两个就是SSH Key的秘钥对,
id_rsa
是私钥,不能泄露出去,id_rsa.pub
是公钥,可以放心地告诉任何人。然后,点“Add SSH Key
”,填上任意Title,在Key文本框里粘贴id_rsa.pub
文件的内容:
在git Bash 中输入以下代码
$ ssh -T [email protected]
当你输入以上代码时,会有一段警告代码,如:
The authenticity of host 'github.com (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':
当然如果你密码输错了,会再要求你输入,直到对了为止。
注意:输入密码时如果输错一个字就会不正确,使用删除键是无法更正的。
密码正确后你会看到下面这段话,如:
Hi username! You've successfully authenticated, but GitHub does not
# provide shell access.
如果用户名是正确的,你已经成功设置SSH密钥。如果你看到 “access denied” ,者表示拒绝访问,那么你就需要使用 https 去访问,而不是 SSH 。
因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的
而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
最后友情提示,在GitHub上免费托管的Git仓库,任何人都可以看到喔(但只有你自己才能改)。
所以,不要把敏感信息放进去。
如果你不想让别人看到Git库,有两个办法,
确保你拥有一个GitHub账号后,我们就即将开始远程仓库的学习。