我觉得这个问题可以从两个不同的角度来考虑:安全性和便利性。
当我们创建一个 SSH 密钥对时,我们被要求提供一个密码以添加更多层来保护私钥,如下所示:
$ ssh-keygen -t rsa -b 4096 -C 'With_OR_Without_Passwd'
Generating public/private rsa key pair.
Enter file in which to save the key (/Your/HomeDir/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
虽然有明确提示要求输入密码,但一些(或许多)人仍然更关注括号中的信息:(empty for no passphrase),并遵循该建议。
结合是否使用多个 SSH 密钥对和是否输入额外的 passwd,我们至少有四种方法可以走。让我们假设所有密钥对和config
文件都存储在~/.ssh/
.
现在让我们先不考虑安全性。
下表给出了关于安全性的简单排名(数字越大表示越安全):
Security Ways to go
1 One SSH key-pair (NO passwd)
1 Multi SSH key-pairs (NO passwd)
2 One SSH key-pair (WITH passwd)
2 Multi SSH key-pairs (WITH passwd) (SAME passwd)
3 Multi SSH key-pairs (WITH passwd) (DIFF passwds)
如果没有 passwd,如果我们的系统被某人入侵,那么断路器可以获取我们所有的私钥和配置,以及远程服务器的身份验证。所以在这种情况下,One key-pair 和 Multi key-pairs 是相同的。最安全的方法是对不同的 ssh 密钥对使用不同的密码。
那就别想方便了。
但是更多的密钥对和更多的密码也让我们的生活变得不那么方便,下表给出了安全性的简单排名(数字越大意味着越安全):
Convenient Security Ways to go
5 1 One SSH key-pair (NO passwd)
4 2 One SSH key-pair (WITH passwd)
3 1 Multi SSH key-pairs (NO passwd)
2 2 Multi SSH key-pairs (WITH passwd) (SAME passwd)
1 3 Multi SSH key-pairs (WITH passwd) (DIFF passwds)
因此,一般情况下,如果我们必须同时兼顾安全性和便利性,我们可以将这两个分数相乘,也许One SSH key-pair (WITH passwd)是一个不错的选择。