为Github Gitlab Gitee账户分别设置SSH KEY
一、分别生成一对秘钥ssh key
1 2 3 4 5 6 7 8 9
| ssh-keygen -t rsa -C "github" -f ~/.ssh/github-rsa ssh-keygen -t rsa -C "gitlab" -f ~/.ssh/gitlab-rsa ssh-keygen -t rsa -C "gitee" -f ~/.ssh/gitee-rsa
配置远程仓库公钥(这里以github为例): #个人头像 -> settings -> SSH and GPG keys -> New SSH key # # #
|
二、添加私钥到ssh-agent的高速缓存中,提高ssh的认证速度。
1 2 3
| ssh-add ~/.ssh/github-rsa ssh-add ~/.ssh/gitlab-rsa ssh-add ~/.ssh/gitee-rsa
|
默认操作系统是不开启ssh-agent的,需要手动打开
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| # 开启ssh-agent ssh-agent bash # 查看私钥列表 ssh-add -l # 查看公钥列表 ssh-add -L # 清空所有密钥 ssh-add -D #从ssh-agent中删除某个私钥或者某个公钥 ssh-add -d ~/.ssh/id_rsa ssh-add -d ~/.ssh/id_rsa.pub
命令选项 -D 删除ssh-agent中的所有密钥 -d 从ssh-agent中删除某个密钥 -e pkcs11:删除PKCS#11共享库pkcs1提供的钥匙 -s pkcs11:添加PKCS#11共享库pkcs1提供的钥匙 -L 显示ssh-agent中的公钥 -l 显示ssh-agent中的私钥 -t life:对加载的密钥设置超时时间,超时ssh-agent将自动卸载密钥 -X 对ssh-agent进行解锁 -x 对ssh-agent进行加锁
|
三、在~/.ssh/下新建一个配置文件 config ,目录结构如下
1 2 3 4 5
| /.ssh -- config -- github-rsa -- github-rsa.pub -- ...
|
配置不同仓库对应的ssh key, config 配置文件内容如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/github-rsa
Host gitlab.com HostName gitlab.com PreferredAuthentications publickey IdentityFile ~/.ssh/gitlab-rsa
Host gitee.com HostName gitee.com PreferredAuthentications publickey IdentityFile ~/.ssh/gitee-rsa
|
测试
1 2 3 4 5 6
| # ssh -T git@[config文件中配置的host值] ssh -T git@github.com ssh -T git@gitlab.com ssh -T git@gitee.com # 返回如下内容,表示身份验证配置成功 Hi xxxx! You’ve successfully authenticated, but GitHub does not provide shell access.
|