我认为可以从两个不同的角度来考虑合理性:安全性和便利性。
当我们创建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):
尽管有一个明确的提示要求输入密码,但是一些(或许多)人仍然更加关注方括号中的信息:(空无密码),并遵循该建议。
结合是否使用多个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,如果我们的系统被某人入侵,那么断路器可以获取我们的所有私钥和配置,以及远程服务器的身份验证。因此,在这种情况下,一个密钥对和多个密钥对是相同的。最安全的方法是对不同的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)
因此,在一般情况下,如果我们必须同时权衡安全性和便利性,我们可以将两个分数相乘,也许一个SSH密钥对(与passwd一起)是一个不错的选择。