余读

生成 SSH 密钥的正确姿势

本文译自github Generating a new SSH key and adding it to the ssh-agent

生成 SSH 密钥(key)

第一步,打开命令行

第二步,粘贴下面的文本,将邮件地址替换成你自己的

1
2
3
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# 创建一个新的 ssh key,并使用提供的 email 作为标签
Generating public/private rsa key pair.

第三步,当弹出“Enter a file in which to save the key”时,按回车使用默认的存储位置。

1
Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]

第四步,在对话框中输入一个安全的 passphrase(密码)。

1
2
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]

使用 SSH key passphrase

为什么需要 passphrase

没有一种密码是绝对安全的。如果你使用简单的密码来方便自己记忆,那它同样容易被猜测和暴力破解。而如果你使用随机序列来增强密码的复杂度,那你自己也很难记住它,于是你会更倾向于把它写下来以防忘记。可这同样是很糟糕的习惯,因为一旦你将密码写下来了,就有可能被别人看到。

这正是我们为什么要使用SSH密钥的原因。如果我们只是使用一个没有密码的密钥,那就和写下一串随机密码没什么区别:任何能进入你电脑的人都能使用你的密钥。解决方法是给SSH密钥加一个密码来提供额外的安全保障。

但我不想每次使用密钥时都去输入一长串的 passphrase

幸好,有一个叫做 ssh-agent 的小工具能够安全地保存你的 passphrase,因此你不需要每次都重新输入。如果你使用 OS X Leopard 或者更新的版本,你的密码能被保存在苹果系统的 keychain 里。

添加或修改 passphrase

你可以直接对一个已经存在的密钥添加或修改密码,而无需重新生成密钥对。只要输入以下命令:

1
2
3
4
5
6
7
ssh-keygen -p
# Start the SSH key creation process
Enter file in which the key is (/Users/you/.ssh/id_rsa): [Hit enter]
Key has comment '/Users/you/.ssh/id_rsa'
Enter new passphrase (empty for no passphrase): [Type new passphrase]
Enter same passphrase again: [One more time for luck]
Your identification has been saved with the new passphrase.

如果你的密钥之前已经被加密过,你需要先输入旧密码。