1.使用 git 客户的生成公私钥:id_rsa、id_rsa.pub
$ git config --global user.name "xxx"
$ git config --global user.email "xxx.mail@xxx.com"
检查是不是已经存在密钥(存在就删掉内容)
cd ~/.ssh
ls
rm -fr ./*
$ ssh-keygen -t rsa -C “xxx.mail@xxx.com”
执行生成密钥命令按3个回车即可
mac 下在 ~/.ssh,如果是 window 的话就在:C:\Users\Administrator.ssh 下面
2.设置 SourceTree 的 SSH 客户端
3.添加 ~/.ssh/id_rsa.pub 文件内容到 git 服务器里面去
密钥是以 ssh-rsa 开头邮箱结尾的,注意复制全
4.创建 ~/.ssh/config 文件
Host 10.0.20.177
HostName 10.0.20.177
User git
IdentityFile ~/.ssh/id_rsa #保证和你本地生成的文件名一样
IdentitiesOnly yes
5.验证
ssh git@github.com
6.说明
- 1.ssh-keygen 是公钥私钥的非对称加密方式:
- 1.1.公钥:用于向外发布,任何人都能获取。
- 1.2.私钥:要自己保存,切勿给别人
- 2.公钥私钥加解密的原理
- 2.1.客户端把自己的公钥存放到要链接的远程主机上(相当于我们把自己的 id_rsa.pub 存放到 git 服务器上)
- 2.2.客户端要链接远程主机的时候,远程主机会向客户的发送一条随机的字符串,客户的收到字符串之后使用自己的私钥对字符串加密然后发送到远程主机,远程主机根据自己存放的公钥对这个字符串进行解密,如果解密成功证明客户端是可信的,直接允许登录,不在要求登录。
- config 配置
- Host
- HostName
- User git
- 说明该配置的用户得是 git
- IdentityFile
- 指定了该使用哪个 ssh key 文件,这里的 key 文件一定指的是私钥文件
- IdentitiesOnly yes