管理多个SSH Key

如果你在一台机器使用两个github账号,或者是使用github的同时,还有bitbucket等代码管理仓库。 例如github,默认情况下,这个秘钥是在你账户的.ssh目录生成id_rsa文件,对应一个id_rsa.pub公钥文件,但是,我可能会有两个github帐号,一个个人,一个办公用(或者是多个仓库管理),这时,我就需要生成多个密钥。

$ ls ~/.ssh/ config
github_rsa
github_rsa.pub
personalid
personalid.pub

以上是我的密钥列表,那么我的github如何使用多个密钥呢。

  • 需要编辑一下配置文件~/.ssh/config:

如果没有这个文件,可以创建一个(切换到 ~/.ssh 目录下)

$ touch config

编辑 config文件

1
2
3
4
5
6
7
8
9
	Host github.com
   		Hostname github.com
	    User            username
    	IdentityFile    ~/.ssh/github_rsa
     
	Host bitbucket.org
	    Hostname bitbucket.org
	    User username
	    IdentityFile ~/.ssh/personalid

只是用一个公钥

也可以几个账号都上传同一个公钥,配置的时候,使用同一个公钥文件就可以了。为了安全性考虑,不建议这么做

1
2
3
4
5
6
7
8
9
Host github.com
   	 Hostname github.com
	 User            username
    	IdentityFile    ~/.ssh/github_rsa
     
Host bitbucket.org
	 Hostname bitbucket.org
	 User username
	 IdentityFile ~/.ssh/github_rsa

解释此配置文件:

Host: "github.com"是一个『别名』,可以随意命名,也可以直接写github

Hostname:	仓储地址:例如git@github.com,这里要的就是 github.com

IdentityFile: 所使用的公钥文件

配置完毕,用下面的命令测试一下:

$ ssh -T git@bitbucket.com
logged in as beyond521t.

You can use git or hg to connect to Bitbucket. Shell access is disabled.

可以使用如下命令,进行debug查看:

$ ssh -vv git@bitbucket.com
Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy