- 1.我们先配置Gitlab,至于怎么申请GItlab/GitHub账号怎么配置SSH key等等就不赘述了,这个不是本文的重点,或参考官网helper。
mac电脑的Git安装和基本操作
快速学会Mac上托管代码到github(详解) - 2.经过第一步后,此时用命令ls查看~/.ssh目录下的文件,会看到有id_rsa 和 id_rsa.pub,这是Gitlab对应的rsa文件。
- 3.用下面的命令执行后,ls后你会发现~/.ssh目录下多了两个文件id_rsa_github和id_rsa_github.pub,这就是GitHub对应的rsa文件。其他那些把ssh key拷贝到GitHub上的步骤我也不赘述了。
ssh-keygen -t rsa -C "你的GitHub账号" -f id_rsa_github
注:如果用下面的命令生成GitHub对应的rsa,那么Gitlab对应的rsa(id_rsa 和 id_rsa.pub)中的泪容将会被替换成GitHub对应的内容,这不是我们想要的结果。
ssh-keygen -t rsa -C "你的GitHub账号"
- 4.gitlab和github的秘钥已经分开生成了,可怎么让这两份秘钥分别对应到相应的远程仓库呢?就是让id_rsa.pub认得gitlab,让id_rsa_github.pub认得github。既然不能自动识别,那就只好手动设置了
vi ~/.ssh/config 加入下面的内容:
# gitlab
Host gitlab
HostName git@192.168.--.--
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
# github
Host github
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
- 5.此时你用 ssh -T git@ 命令测试可能会出现下面的情况,publickey有问题
zzydeMac-mini:.ssh zzy$ ssh -T git@github.com
Permission denied (publickey).
- 6.执行命令 ssh-add ~/.ssh/id_rsa_github,再测试就没问题了
zzydeMac-mini:.ssh zzy$ ssh-add ~/.ssh/id_rsa_github
Identity added: /Users/zzy/.ssh/id_rsa_github (/Users/zzy/.ssh/id_rsa_github)
zzydeMac-mini:.ssh zzy$ ssh -T git@github.com
Hi zzy! You've successfully authenticated, but GitHub does not provide shell access.
网友评论