使用SSH协议同时访问Gitee仓库和GitHub仓库
生成 sshkey
在使用SSH协议访问仓库仓库之前,需要先配置好账户/仓库的SSH公钥。
你可以按如下命令来生成 sshkey:
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
# Generating public/private rsa key pair...
注意:这里的
xxxxx@xxxxx.com
只是生成的 sshkey 的名称,并不约束或要求具体命名为某个邮箱。 现网的大部分教程均讲解的使用邮箱生成,其一开始的初衷仅仅是为了便于辨识所以使用了邮箱。
virhuiai % ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/virhuiaivirhuiai/.ssh/id_rsa):
/Users/virhuiaivirhuiai/.ssh/id_rsa already exists.
Overwrite (y/n)? n
由于之前配置了GitHub的,后面还要重新设置下。这儿生成的命令后面配置改下:
Enter file in which to save the key (/Users/virhuiaivirhuiai/.ssh/id_rsa): /Users/virhuiaivirhuiai/.ssh/id_rsa_gitee
按照提示完成三次回车,即可生成 ssh key。
Your identification has been saved in /Users/virhuiaivirhuiai/.ssh/id_rsa_gitee.
Your public key has been saved in /Users/virhuiaivirhuiai/.ssh/id_rsa_gitee.pub.
通过查看 ~/.ssh/id_rsa_gitee.pub
文件内容,获取到你的 public key:
cat ~/.ssh/id_rsa_gitee.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....
多个id_rsa 配置
因为 需要配置 ssh 免密码登录+ github ssh ,所以会导致 .ssh 目录下的id_rsa 存在覆盖的问题。
上面我们将配置改成id_rsa_gitee,相应的在.ssh
要设置下config文件:
vim ~/.ssh/config
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
# gitee
Host gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitee
复制ssh key到Gitee
通过查看 ~/.ssh/id_rsa_gitee.pub
文件内容,获取到你的 public key:
cat ~/.ssh/id_rsa_gitee.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....
复制生成后的 ssh key,通过仓库主页 「管理」->「部署公钥管理」->「添加部署公钥」 ,添加生成的 public key 添加到仓库中。
还会弹出帐号验证:
将本地已经仓库推送
cd existing_git_repo
git remote add origin git@gitee.com:virhuiai/program-ape.git
git push -u origin master
这边命令基础的可以到这边看:
创建仓库完成后都会有这样的简易说明,更详细的可以到相应的链接去看。