Git配置多个SSH-Key

2021-06-10  本文已影响0人  Anchoriter

背景

当有多个git账号时,比如:

a. 一个gitlab,用于公司内部的工作开发;
b. 一个gitee,用于自己私有的一些开发活动;
c. 一个github,用于自己公开的一些开发活动;

解决方法

  1. 生成一个公司用的SSH-Key
ssh-keygen -t rsa -C 'anchoriter@haha.com' -f ~/.ssh/haha_id_rsa

然后不输入任何内容,一直回车,最后会提示The key's randomart image is:

  1. 生成一个自己私有用的SSH-Key
ssh-keygen -t rsa -C 'anchoriter@gittee.com' -f ~/.ssh/gitee_id_rsa

然后不输入任何内容,一直回车,最后会提示The key's randomart image is:

  1. 生成一个github用的SSH-Key
ssh-keygen -t rsa -C 'anchoriter@qq.com' -f ~/.ssh/github_id_rsa

然后不输入任何内容,一直回车,最后会提示The key's randomart image is:

  1. 在 ~/.ssh 目录下新建一个config文件,添加如下内容(其中Host和HostName填写git服务器的域名,IdentityFile指定私钥的路径)
# haha
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/haha_id_rsa
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_id_rsa
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa

4.查看你的 public key(以ssh-rsa 开头,以账号的注册邮箱结尾的)

cat ~/.ssh/haha_id_rsa.pub
cat ~/.ssh/gitee_id_rsa.pub
cat ~/.ssh/github_id_rsa.pub

5.将public key添加到公司代码库、码云或者github等仓库的公钥管理后台
例如:码云SSH公钥管理后台

6.用ssh命令分别测试

ssh -T git@git.haha.com  // 公司的仓库地址前缀
ssh -T git@gitee.com
ssh -T git@github.com

会输出Hi xxx! You've successfully authenticate... 表示配置成功

7.将密钥保存到钥匙串,避免重启电脑后丢失
之前使用下面的方法是没有问题的,但是macOS Monterey 12.0.1新系统出现了警告,没有成功
旧方法:

ssh-add -K ~/.ssh/haha_id_rsa
ssh-add -K ~/.ssh/github_id_rsa
ssh-add -K ~/.ssh/gitee_id_rsa

警告内容如下:

WARNING: The -K and -A flags are deprecated and have been replaced
         by the --apple-use-keychain and --apple-load-keychain
         flags, respectively.  To suppress this warning, set the
         environment variable APPLE_SSH_ADD_BEHAVIOR as described in
         the ssh-add(1) manual page.

新方法:

ssh-add --apple-use-keychain ~/.ssh/haha_id_rsa
ssh-add --apple-use-keychain ~/.ssh/github_id_rsa
ssh-add --apple-use-keychain ~/.ssh/gitee_id_rsa

接下来就可以直接使用SSH的URL免密码管理代码仓库了

上一篇 下一篇

猜你喜欢

热点阅读