美文网首页
管理多个SSH KEY

管理多个SSH KEY

作者: 热干面一元五 | 来源:发表于2020-11-24 11:18 被阅读0次

[toc]

查看

ssh-add -l 
3072 SHA256:HpFoxdG1UO2U+gX3r45Z9SJrBjSZ/SlT3wH+BDCrQz0 youremail@example.com (RSA)
3072 SHA256:VlXQsANIE7eH/Gttk2vAsvQ6bMzZTvWSgMdu9U3ynog youremail@example.com(RSA)

生成不同名称的ssh密钥

# 其中gitlab,github, 和name 我主要用来区别是那个平台,自己可随意只要你能区分就行
ssh-keygen -t rsa -f ~/.ssh/id_rsa.gitlab.name -C "youremail@example.com"
ssh-keygen -t rsa -f ~/.ssh/id_rsa.github.name -C "youremail@example.com"

输入过程中可以不输入密码, 直接回车,懒人方式

会在 ~/.ssh/, 目录下生成两个文件, 一个是 id_rsa.gitlab.nameid_rsa.gitlab.name.pub 文件,

新建ssh配置文件

touch ~/.ssh/config

config的内容如下:

#github配置
# 别名 , 如果是你又多个github 账号, 需要配置多个sshkey 就用这个来区分的
# 多个github 账号 : Host username.github.com 

Host github.com
# 端口, 默认是22可以不写,如果自己搭建的服务器监听的是其他端口这个参数必须声明
Port 22
#  IP地址或者域名
Hostname github.com
# 下面可以直接写 `git` 当然你也可以写指定用户
user user@github.com
# 对应的私钥路径
IdentityFile ~/.ssh/id_rsa.github

#gitlab配置
# 别名 , 如果是你又多个github 账号, 需要配置多个sshkey 就用这个来区分的
# 多个github 账号 : Host username.github.com 
Host gitlab
# 端口, 默认是22可以不写,如果自己搭建的服务器监听的是其他端口这个参数必须声明
Port 22
# IP地址或者域名
Hostname gitlab.com
# 下面可以直接写 `git` 当然你也可以写指定用户
user user@gitlab.com
# 对应的私钥路径
IdentityFile ~/.ssh/id_rsa.gitlab

添加私钥

ssh-add ~/.ssh/id_rsa.gitlab
ssh-add ~/.ssh/id_rsa.github

配置公钥

# ~/.ssh/ 下面的.pub 文件全部都是公钥,需要上传到对应的平台, 流程略, 参考平台地址
cat ~/.ssh/xx.pub
将输出的结果复制

设置远程库的地址

git remote add origin git@github:test/test.git

测试


ssh -T git@github.com (域名)
ssh -T git@config文件中的别名 
ssh -T git@ip地址
# 终端输出
Hi Rosalindjuan! You've successfully authenticated, but GitHub does not provide shell access.
  • 如果终端有新添加的ssh-key 也需要在~/.ssh/config 配置

分别输入对应密钥的密码,测试成功。
记得在设置远程仓库地址的时候,修改对应的Host名称。建议把常用的git远程仓库设置为默认的密钥,生成默认密钥的命令如下:

只要Host不在config文件中,都是读取默认密钥。

ssh-keygen -t rsa -C "youremail@example.com"

删除

ssh-add -D

一个托管平台多个ssh key

配置

# 用户1
Host username1.github.com 
Hostname github.com
user git
IdentityFile ~/.ssh/id_rsa.username1.github

# 用户2
Host username2.github.com 
Hostname github.com
user git
IdentityFile ~/.ssh/id_rsa.username2.github

使用

注意下面的username1 和username2

用户1

# 举个 🌰
git clone git@username1.github.com:username/example.git
git remote set-url origin git@username1.github.com/username/example.git

用户2

# 举个 🌰
git clone git@username2.github.com:username/example.git
git remote set-url origin git@username2.github.com/username/example.git

测试

ssh-add -T git@username1.github.com
ssh-add -T git@username2.github.com

相关文章

网友评论

      本文标题:管理多个SSH KEY

      本文链接:https://www.haomeiwen.com/subject/mkriiktx.html