赞
踩
有时候我们需要配置多个git网站的ssh-key,来区分公司和个人的仓库。以下分为几种情况来阐述配置方式。
以下以gitee
和github
作为例子,实际可根据自己情况而定
分别生成gitee
和github
的ssh-key
这边的邮箱随便写,没有任何影响,只是用来作为标识
ssh-keygen -t ed25519 -C "x@x.com" -f ~/.ssh/github_id
ssh-keygen -t ed25519 -C "x@x.com" -f ~/.ssh/gitee_id
连续按三个回车
进入目录~/.ssh
cd ~/.ssh
添加配置文件config
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_id
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id
此时的文件目录
.
├── config
├── gitee_id
├── gitee_id.pub
├── github_id
└── github_id.pub
验证
命令框输入:ssh -T git@github.com
出现以下就是成功:
Hi ***! You've successfully authenticated, but GITEE.COM does not provide shell access.
这里的ip是
gitee.com
的
212.64.62.183 gitee_self.com
ssh-keygen -t ed25519 -C "x@x.com" -f ~/.ssh/gitee_company
ssh-keygen -t ed25519 -C "x@x.com" -f ~/.ssh/gitee_self
~/.ssh
下创建配置# gitee_self
Host gitee_self.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_self
# gitee_company
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_company
ssh -T git@gitee_self.com
ssh -T git@gitee.com
公司:
git clone git@gitee.com:**/**.git
个人:
git clone git@gitee_self.com:**/**.git
个人不太喜欢
方案一
,其实切换ssh-key的频率并不是很高,完全可以写一个脚本去做
~/.ssh
目录下生成config_company
和config_self
# config_self
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_self
# config_company
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_company
check_config.sh
# 这里使用了相对路径,根据实际情况,可以替换成绝对路径 parent_path="." config_self="${parent_path}/config_self" config_company="${parent_path}/config_company" config_current="${parent_path}/config" if [ ${1} -eq 1 ]; then cat ${config_company} >${config_current} else cat ${config_self} >${config_current} fi # 打印结果 echoResult() { current_config_desc="切换完成,当前配置:"$([ ${1} -eq 1 ] && echo "公司配置" || echo "个人配置") echo echo " * * * * * * * * * * * * * * * * * * * * *" echo " * * * * * * * * * * * * * * * * * * * * *" echo " * * * * * * * * * * * * * * * * * * * * *" echo " * * * * * * * * * * * * * * * * * * * * *" echo " * * * * * * * * * * * * * * * * * * * * *" echo " * * * \033[33m" $current_config_desc "\033[0m* * * " echo " * * * * * * * * * * * * * * * * * * * * *" echo " * * * * * * * * * * * * * * * * * * * * *" echo " * * * * * * * * * * * * * * * * * * * * *" echo " * * * * * * * * * * * * * * * * * * * * *" echo " * * * * * * * * * * * * * * * * * * * * *" echo echo echo } echoResult ${1}
cd ~/.ssh
# 切换到config_company环境
sh check_config.sh 1
# 切换到config_self环境
sh check_config.sh 9
ssh -T git@gitee.com
验证下如果感觉有用,请点个赞,谢谢
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。