相关文章:
git中https和SSH克隆的区别
1. 什么是Gitee
使用GitHub时,国内的用户经常遇到的问题是访问速度太慢,有时候还会出现无法连接的情况(原因你懂的)。
如果我们希望体验Git飞一般的速度,可以使用国内的Git托管服务——Gitee(gitee.com)。
和GitHub相比,Gitee也提供免费的Git仓库。此外,还集成了代码质量检测、项目演示等功能。对于团队协作开发,Gitee还提供了项目管理、代码托管、文档管理的服务,5人以下小团队免费
2. ssh配置
由git中https和SSH克隆的区别得知,存在ssh和https 两种方法克隆代码,但是前者下载比较麻烦,需要预设置鉴权信息,但是后续比较方便,我们推荐ssh方式。
2.1 创建公钥
为什么要创建公钥和预配置呢?首先ssh模式目的是为了让clinet和git server能够安全通信,所以采用了数字签名RSA或者DSA来完成这个操作,ssh加密原理需要预配置公钥,否则怎么能保证安全通信呢。
更详细的创建公钥的过程参见 git中https和SSH克隆的区别
大致就是通过 命令生成id_dsa.pub 文件,文件的内容就是公钥:
$ ssh-keygen -t rsa -C “your_email@example.com”
2.2 导入公钥
使用SSH公钥可以让你在你的电脑和 Gitee 通讯的时候使用安全连接(Git的Remote要使用SSH地址)
使用Gitee和使用GitHub类似,我们在Gitee上注册账号并登录后,需要先上传自己的SSH公钥
。选择右上角用户头像 -> 菜单“修改资料”,然后选择“SSH公钥”,填写一个便于识别的标题,然后把用户主目录下的.ssh/id_rsa.pub
文件的内容粘贴进去:
点击“确定”,需要输入密码:
即可完成并看到刚才添加的Key:
2.2.1 与项目的ssh公钥区别
我们之前的操作是账户SSH公钥,同时,针对每个项目,也存在一个ssh公钥
和仓库"只读"权限的 SSH Key 相比,账户的 SSH Key 同时具备推送/拉取的权限,对用户创建/参与的仓库均能使用,使用起来更加方便。
仓库的 sshkey 只针对仓库,且我们仅对仓库提供了部署公钥,即仓库下的公钥仅能拉取仓库,这通常用于生产服务器拉取仓库的代码。
而用户的 key 则是针对用户的,用户添加了 key 就对用户名下的仓库和用户参加了的仓库具有权限,一般而言,用户的key具有推送和拉取的权限,而仓库的 key 则只具有拉取权限。
也就是说通过项目的ssh,我们可以单独放开某个项目的拉取权限给某个人,这样保护了其他的项目隐私性;而账户的ssh是个全局的概念,对所有的项目都生效。
3. 克隆代码
克隆代码分为2种形式,一种是拉取代码,这样下载下来的代码默认就是绑定远程库的,ssh 和https都是这种具体实现;另一种就是本地建立一个本地的工程,然后通过命令绑定至远程库
我们以拉取代码为例:
git clone xxxxx