当前位置:   article > 正文

mac配置多个git的ssh-key_mac 保留多个git key

mac 保留多个git key

前言

有时候我们需要配置多个git网站的ssh-key,来区分公司和个人的仓库。以下分为几种情况来阐述配置方式。
以下以giteegithub作为例子,实际可根据自己情况而定

配置gitee和github

  1. 分别生成giteegithub的ssh-key

    这边的邮箱随便写,没有任何影响,只是用来作为标识

    ssh-keygen -t ed25519 -C "x@x.com" -f ~/.ssh/github_id
    
    • 1
    ssh-keygen -t ed25519 -C "x@x.com" -f ~/.ssh/gitee_id
    
    • 1

    连续按三个回车

  2. 进入目录~/.ssh

    cd ~/.ssh
    
    • 1
  3. 添加配置文件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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  4. 此时的文件目录

    	.
    	├── config
    	├── gitee_id
    	├── gitee_id.pub
    	├── github_id
    	└── github_id.pub
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  5. 验证

    	 命令框输入:ssh -T git@github.com
    	 出现以下就是成功:
    	 Hi ***! You've successfully authenticated, but GITEE.COM does not provide shell access.
    
    • 1
    • 2
    • 3

配置两个gitee

方案一 修改host

  1. 添加host

这里的ip是gitee.com

212.64.62.183 gitee_self.com
  • 1
  1. 生成两个配置
 ssh-keygen -t ed25519 -C "x@x.com" -f ~/.ssh/gitee_company
 ssh-keygen -t ed25519 -C "x@x.com" -f ~/.ssh/gitee_self
  • 1
  • 2
  1. 在目录~/.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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  1. 验证下
ssh -T git@gitee_self.com
ssh -T git@gitee.com
  • 1
  • 2
  1. clone项目
公司:
git clone git@gitee.com:**/**.git
个人:
git clone git@gitee_self.com:**/**.git
  • 1
  • 2
  • 3
  • 4

方案二 shell脚本

个人不太喜欢方案一,其实切换ssh-key的频率并不是很高,完全可以写一个脚本去做

  1. 在目录~/.ssh目录下生成config_companyconfig_self
	# config_self
	Host gitee.com
	HostName gitee.com
	PreferredAuthentications publickey
	IdentityFile ~/.ssh/gitee_self
  • 1
  • 2
  • 3
  • 4
  • 5
	# config_company
	Host gitee.com
	HostName gitee.com
	PreferredAuthentications publickey
	IdentityFile ~/.ssh/gitee_company
  • 1
  • 2
  • 3
  • 4
  • 5
  1. 脚本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}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  1. 运行
cd ~/.ssh
# 切换到config_company环境
sh check_config.sh  1
# 切换到config_self环境
sh check_config.sh  9
  • 1
  • 2
  • 3
  • 4
  • 5
  1. 最终每次切换成功后可以用命令ssh -T git@gitee.com验证下

如果感觉有用,请点个赞,谢谢

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/65603
推荐阅读
相关标签
  

闽ICP备14008679号