使用 ssh 克隆项目,更加安全方便。 git clone
项目时一般使用两种协议 https
和 ssh
。
二. 原理的通俗解释
ssh 解决的问题是登录时的用户身份验证问题,默认使用 RSA
(也支持其他算法: RSA、DSA、ECDSA、EdDSA、Ed25519
,它们在效率,安全性上有所区别)。完整的流程:
我们首先在本地生成一对公私钥(如果需要多对秘钥分别用于不同平台 gitlab, github , gitee
等,可以生成多对;也可以多个平台使用一对秘钥), 私钥交给秘钥管理器 ssh -agent
, 公钥配置 到目标网站 gitlab, github ,gitee
这样在登录指定服务器时,秘钥管理器就会使用秘钥自动验证用户身份。
建议
三. 相关文件
所有 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
文件。