前言
大家好,我是Frank。今天突发奇想,在自己的
github上提交些内容,于是便开始依照官网要求配置ssh-key。因为电脑上已经配置过了公司的ssh-key,所以并没有成功,又因为是Mac本,对我我这种资深windows用户来讲确实手生。于是便开始了探索之旅。
正文
不知道大家有没有过这种感受,就是一个自己不是很懂的东西,第一次解决问题的时候会有种很茫然的感觉,看着官方文档也是一知半解,即使看到网上那么多帖子,但自己出现的问题往往都没有出现,很是头疼。可能这就是能力不够吧~ 废话不多说了,我们开始正题吧
1、生成ssh-key
- 打开终端输入如下命令,生成第一个
ssh-key
ssh-keygen -t rsa -C "你的邮箱" -f ~/.ssh/id_rsa_one
- 再次输入,生成第二个
ssh-key
ssh-keygen -t rsa -C "你的邮箱" -f ~/.ssh/id_rsa_two
这个命令的作用就是在我们的
.ssh文件夹下生成ssh-key
- 创建完成后,我们的
.ssh文件夹下会多出以下几个文件
id_rsa_one.pub id_rsa_two.pub id_rsa_one id_rsa_two
Mac用户可以通过如下命令查看
# 进入.ssh目录
cd .ssh
# 查看当前目录下所有文件
ls
2、添加ssh-key到git中
windows用户可以直接打开文件复制,Mac用户需要使用以下命令
# 复制id_rsa_one.pub / id_rsa_two.pub文件下的内容
pbcopy < ~/.ssh/id_rsa_one.pub
pbcopy < ~/.ssh/id_rsa_one.pub
复制完成后粘贴到对应的git上就可以了
3、添加私钥到ssh-agent中
ssh-agent顾名思义ssh代理。
- 输入如下命令将私钥添加到
ssh-agent中。📝windows需要在bash命令工具下操作
ssh-add ~/.ssh/id_rsa_one
ssh-add ~/.ssh/id_rsa_two
如果提示
Could not open a connection to your authentication agent,可以先执行以下命令(这是从网上看的,我并没有出现这个情况)
ssh-agent bash
如果出现如下字样表示成功
Identity added ...
- 查看私钥列表
ssh-add -l
- 删除私钥
ssh-add -D
-
另外,Mac用户要注意,电脑每次关机后都会忘记ssh-add的私钥,解决方法如下
- 打开automator.app,不知道怎么打开的话就用右上角的搜索
- 新建文稿
- 添加shell脚本:输入
ssh-add ~/.ssh/id_rsa_one ~/.ssh/id_rsa_two- 上面保存为add_ssh_key.app
- 系统偏好设置 => 用户与群组 => 登陆项 => 添加add_ssh_key.app
- 重启 => 成功
4、.ssh文件夹下添加config文件
这里我理解的就是配置入口,也就是让git能够知道去找哪个
私钥。
- config文件的配置内容
Host 服务器地址或者域名 HostName 服务器别名,建议跟Host一样 User 用户名 PreferredAuthentications publickey 这应该是取公钥,不需要更改 IdentityFile 私钥文件路径
- 按照以上说明我们的config配置如下
# gitlab
Host gitlab
HostName gitlab.com
User `yourname`
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_one
# github
Host github
HostName github.com
User `yourname`
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_two
windows用户可以直接编辑,Mac用户可以使用以下命令,当然,如果会用vim编辑器更好
# 进入根目录
cd ~
# 打开.ssh文件,然后就是可视化操作了
open .ssh
5、测试连接
# 这里如果是私有的仓库,需要修改为对应私有的域名
ssh -T git@github.com
ssh -T git@gitlab.com
6.查看并设置当前电脑使用的git账号信息
# 查看当前电脑使用的git用户名
git config user.name
# 查看当前电脑使用的git邮箱
git config user.email
# 设置当前电脑使用的git用户名
git config --global user.name "xxx"
# 设置当前电脑使用的git邮箱
git config --global user.email "xxx"
接下来就可以愉快的玩耍了~
后记
希望对大家有所帮助~