文章目录
  1. 1. 概述
  2. 2. 生成公钥(ssh key)
  3. 3. 同时使用多个公钥
    1. 3.1. 组织公钥
    2. 3.2. 修改ssh_config使用多个公钥
  4. 4. 总结
  5. 5. 参考

概述

ssh生成公钥对大家来说都是很简单的一个操作,大多时候我们需要在很多网站同时使用ssh服务,如果我们只有一个公钥,这是很不安全的,而且如果我们在本地更新了公钥,那么我们就需要更新所有使用该公钥的网站,这时很麻烦的。因此,这篇文章先简单介绍如何生成公钥,然后向大家介绍如何针对不同的网站使用不同的公钥。

生成公钥(ssh key)

首先检查本机公钥:

1
$ cd ~/.ssh

如果提示:No such file or directory 说明本机还没有公钥。如果不是第一次使用,请执行下面的操作,清理原有ssh密钥。

1
2
3
$ mkdir key_backup
$ cp id_rsa* key_backup
$ rm id_rsa*

生成新的密钥:

1
$ ssh-keygen -t rsa -C “您的邮箱地址”

-t 参数指定key的类型,默认为rsa。-C为给公钥添加评论,可以不使用,但默认会生成一个。

在回车中会提示你输入一个密码,这个密码会在你提交项目时使用,如果为空的话提交项目时则不用输入。
您可以在你本机系统盘下,您的用户文件夹里发现一个.ssh文件,其中的id_rsa.pub文件里储存的即为刚刚生成的ssh密钥。
这样一个ssh密钥就生成了。

同时使用多个公钥

要在一台电脑上同时使用多个公钥,我们需要修改ssh_config(ssh_config在这篇文章中提到过)。下面是使用方法:

组织公钥

为了让公钥变的更有条理,我将公钥放在了不同的文件夹下,对应不同的用途。

1
2
3
4
5
6
7
8
9
10
11
12
13
$ cd ~/.ssh
$ ls -l
total 8
drwxr-xr-x 6 tudouya staff 204 10 12 02:56 git
-rw-r--r-- 1 tudouya staff 2808 10 12 02:51 known_hosts
drwxr-xr-x 2 tudouya staff 68 10 12 14:22 vps
$ cd git
$ ls -l
total 32
-rw------- 1 tudouya staff 1675 10 12 02:25 bitbucket_id_rsa
-rw-r--r-- 1 tudouya staff 401 10 12 02:25 bitbucket_id_rsa.pub
-rw------- 1 tudouya staff 1679 10 12 02:24 tudouya_id_rsa
-rw-r--r-- 1 tudouya staff 401 10 12 02:24 tudouya_id_rsa.pub

从上面的命令可以看出,.ssh目录下有两个目录,其中一个名称为git,我主要用它来存放git用途的公钥。

大家在使用ssh-keygen生成key的时候,可以指定key的存放路径和名称,所以这点不要迷惑。

修改ssh_config使用多个公钥

我们已经有了多个公钥,现在的问题是当ssh查找公钥的时候,它不能找到它需要的那个。因此,我们需要修改配置文件,确保ssh能正确的找到它需要使用的公钥。
下面是我的ssh_config配置实例,大家使用相同的格式就行:

1
2
3
4
5
6
7
8
9
10
11
12
Host github.com  ##主机别名
Hostname github.com ##主机真实地址
PreferredAuthentications publickey
IdentityFile ~/.ssh/git/tudouya_id_rsa
User user
Port port
Host bitbucket.org
Hostname bitbucket.org
PreferredAuthentications publickey
IdentityFile ~/.ssh/git/bitbucket_id_rsa
User user
Port port

上面的配置文件一目了然,这里就不做解释了。

总结

这篇文章主要介绍了如果使用多个公钥,在学习ssh的路上又进了一步,同时希望能帮助大家。~~~

参考

1.Managing Multiple SSH Keys
2.Best way to use multiple SSH private keys on one client