一. 为什么配置ssh
 
- 使用 ssh 克隆项目,更加安全方便。 
git clone 项目时一般使用两种协议 https 和 ssh 。 
 
二. 原理的通俗解释
 
- ssh 解决的问题是登录时的用户身份验证问题,默认使用 
RSA(也支持其他算法: RSA、DSA、ECDSA、EdDSA、Ed25519 ,它们在效率,安全性上有所区别)。 - 完整的流程:
 
 
- 我们首先在本地生成一对公私钥(如果需要多对秘钥分别用于不同平台 
gitlab, github, gitee 等,可以生成多对;也可以多个平台使用一对秘钥), - 私钥交给秘钥管理器 
ssh-agent , - 公钥配置到目标网站 
gitlab, github,gitee - 这样在登录指定服务器时,秘钥管理器就会使用秘钥自动验证用户身份。
 
 
- 建议
 
 
- 使用两对秘钥,一个用于公司的gitlab,一个用于自己的 gitee, github。
 
 
三. 相关文件
 
- 所有 ssh 相关的文件都在 
~/.ssh/ 下,本次用到的相关文件 id_rsa 和 id_rsa.pub :默认一对公私钥的名字,可以有多对,使用命令 ssh-keygen 生成。known_hosts :当替换了原有平台的公钥时,需要去这个文件里删除对应平台的 host 记录。
  
 
四. 关键步骤
 
- 生成秘钥对,可以检查目录 
~/.ssh/ 下是否有秘钥对,如果没有则重新生成。 
 
ssh-keygen -t ed25519 -C "zhangsan@qq.com"
ssh-keygen -t ed25519 -C "lisi"
 
- 添加私钥到 
ssh-agent 私钥管理器。 
 
ssh-add -l
ssh-add ~/.ssh/id_rsa
ssh-add ~/.ssh/gitlab_id
eval  `ssh-agent -s`
 
- 添加公钥到 
gitlab、github、gitee 。 
 
- 复制 gitlab_id.pub 文件里的内容,黏贴到对应网站的个人配置中。
 
 
- 验证是否可以克隆。
 
 
ssh -T git@gitlab.company.com
ssh -T git@gitee.com
ssh -T git@github.com
git clone git@xxx.git
 
五. 命令总结
 
ssh-keygen -t ed25519 -C "zhangsan@qq.com"
ssh-add -l
ssh-add ~/.ssh/id_rsa
eval  `ssh-agent -s`
ssh -T git@gitee.com
 
六. windows 10 需要注意以下两点
 
- 在 服务 中开启 ssh agent。
 
 
- win + R -> services.msc -> openssh -> auto
 
 
- 如果执行 
ssh -T git@gitee.com 可以,但是仍不能 克隆 代码,需要配置 config 文件。