SSH keys 公钥配置与使用

SSH 密钥对可以让您方便的登录到 SSH 服务器,而无需输入密码。由于您无需发送您的密码到网络中,SSH 密钥对被认为是更加安全的方式。再加上使用密码短语 (passphrase) 的使用,安全性会更上一层楼。
同时,我们可以使用 SSH agent 来帮助我们记住密码短语,无需我们记住每一个密钥对的密码短语,减轻了我们的负担。

生成SSH keys

SSH 密钥对总是成双出现的,一把公钥,一把私钥。公钥可以自由的放在您所需要连接的 SSH 服务器上,而私钥必须稳妥的保管好。
所谓”公钥登录”,原理很简单,就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录 shell,不再要求密码。这样子,我们即可保证了整个登录过程的安全,也不会受到中间人攻击。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 执行 ssh-keygen 命令
# 下面需要输入私钥, 当然也可以不输入, 默认为空
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/makehui/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/makehui/.ssh/id_rsa.
Your public key has been saved in /home/makehui/.ssh/id_rsa.pub.
The key fingerprint is:
bb:26:1e:b2:d9:b3:0f:29:84:99:52:24:a2:56:fb:33 makehui@MakeHui-Ubuntu14-0-4
The key's randomart image is:
+--[ RSA 2048]----+
|o .. |
|oo. . |
|.... |
|.. +. |
|. + .E S |
| . . o. . |
| o + . |
| *oo.. |
| o.+*o |
+-----------------+
1
2
# 查看SSH keys
cat ~/.ssh/id_rsa.pub

配置GitHub SSH keys

  1. 点击GitHub头像
  2. Settings
  3. 在左边菜单栏点击SSH keys
  4. 点击Add SSH keys
  5. 填写Title, 去个名字
  6. 复制上面得到的SSH keys到Key文本框
  7. 点击Add key完成

参考资料

https://wiki.archlinux.org/index.php/SSH_keys_(简体中文)
http://blog.csdn.net/houyp520/article/details/9401745