一个git客户端使用不同的邮箱账号生成多个ssh key

创建密钥

1.创建一个密钥

$ ssh-keygen -t rsa

2.输入保存ssh key 密钥的文件名称 id_rsa_github 。

Enter file in which to save the key (/root/.ssh/id_rsa):/root/.ssh/id_rsa_aaa

3.输入两次密码,要求最低不能低于8位。

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

重复上面的步骤可以创建多个密钥,比如你有多个git账户

id_rsa_github
id_rsa_bitbucket
id_rsa_oschina

添加到 ssh-agent

用ssh-add命令把创建的密钥添加到 ssh-agent 里

$ ssh-add ~/.ssh/id_rsa_github
$ ssh-add ~/.ssh/id_rsa_bitbucket
$ ssh-add ~/.ssh/id_rsa_oschina

可以用ssh-add -l来查看一下添加效果,一般会出现下面的提示信息

2048 SHA256:ueU7NSaLTzfKNMKL3EVkBKqK2/bvr/ewdNVTmBYZtxg /Users/YourName/.ssh/id_rsa_github (RSA)
2048 SHA256:xGAMHLe5Un5LLWiXp6GI84CVn23sD9g+EQBjXMQP34YA /Users/YourName/.ssh/id_rsa_bitbucket (RSA)
2048 SHA256:lJfTU9j6JfkMSM4vJpk5BdsARzkRA/d05aUnc2BdBeg /Users/YourName/.ssh/id_rsa_oschina

这就证明你之前添加都已经生效了。

当然如果这里出现什么问题,你也可以用 ssh-add -d 来删除某个id_rsa

保存公钥到 git 服务

打开对应的git服务网站管理页面把对应的公钥提交保存到代码管理服务器(.pub 结尾)

添加 ssh 配置文件

在 ~/.ssh 目录创建 config 配置文件

nano ~/.ssh/config

 

添加配置信息

Host github.com
    HostName        github.com
    User            git
    IdentityFile    /Users/YourName/.ssh/id_rsa_github

Host bitbucket.org
    HostName        bitbucket.org
    User            git
    IdentityFile    /Users/YourName/.ssh/id_rsa_bitbucket

Host oschina.net
    HostName        oschina.net
    User            git
    IdentityFile    /Users/YourName/.ssh/id_rsa_oschina

好了,这样就可以任意穿梭于多个git服务器而不用担心ssh key的问题了。 

 

一、生成ssh key

1.1 生成密钥(必须)

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

注解:

  • 密钥类型可以用 -t 选项指定。如果没有指定则默认生成用于SSH-2的RSA密钥。这里使用的是rsa
  • 同时在密钥中有一个注释字段,用-C来指定所指定的注释,可以方便用户标识这个密钥,指出密钥的用途或其他有用的信息。所以在这里输入自己的邮箱或者其他都行
  • 若一路回车(密码可以不写),这样只会在~/.ssh/ 目录下生成 id_rsa 和 id_rsa.pub 两个文件

1.2 设置路径 (可选)

为了区分,我们在第一个回车后设置路径,进行第二步

id_rsa_bitbucket
id_rsa_bitbucket.pub

id_rsa_github
id_rsa_github.pub

1.3 指定密语字符串(可选)

  • 输入完毕后程序同时要求输入一个密语字符串(passphrase),空表示没有密语。接着会让输入2次口令(password),空表示没有口令。3次回车即可完成当前步骤,此时~/.ssh目录下文件已经生成好了。
  • 建议输一个,安全一点,当然不输也行,应该不会有人闲的无聊冒充你去修改你的代码


完了之后,大概是这样:

到此为止,你本地的密钥对就生成了。

二、设置ssh key的代理

2.1、 首先查看代理

ssh-add -l

若提示

Could not open a connection to your authentication agent.

则系统代理里没有任何key,执行如下操作

ssh-agent bash

若系统已经有ssh-key 代理 ,可以删除

ssh-add -D

2.2、 添加私钥

ssh-add ~/.ssh/id_rsa_bitbucket
ssh-add ~/.ssh/id_rsa_github

三、添加公钥

在对应的github的ssh管理页面,添加对应的公钥(.pub 文件内容),保存到代码管理服务器。

四、添加和编辑配置文件config

在 ~/.ssh 目录下新建一个config文件

touch ~/.ssh/config

添加内容

# git@bitbucket.org
Host bitbucket.org
HostName bitbucket.org
PreferredAuthentications publickey
IdentityFile ~/.ssh/github/id_rsa_bitbucket

# git@github.com
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github

当然也可以利用nano命令来创建和编辑

nano ~/.ssh/config

如此,ssh就会根据登陆的不同域,来读取对应的私钥文件

五、测试

ssh -T HostName

ssh -T git@github.com

若出现

Hi XXX! You've successfully authenticated, but GitHub does not provide shell access.

则表示成功。

若出现

permission denied (publickey)

请检查github的ssh管理里添加的公钥是否正确。

六 为不同项目设置不同的git账号

设置了全局的git用户,所有的git项目都会使用这个用户名和邮箱,如下设置的:

git config --global user.name 'Username'
git config --global user.email 'UserEmail'

如果你在另一个项目中想使用另一个git账号,就要为当前项目设置指定的账号和邮箱,在当前项目中设置如下命令:

git config user.name 'AnotherName'
git config user.email 'AnotherEmail'

使用git config --list 就可以看到全局的git配置和当前项目的git配置了

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梅坞茶坊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值