当为普通用户创build密钥对时,可以select使用3DES对私钥进行对称encryption。 我通常认为这是一个好主意,那么即使密钥被盗,攻击者也是无用的。
我注意到,在运行sshd的每台计算机上(至less是基于Ubuntu的),安装sshd服务器软件/ etc / ssh / ssh_host_rsa_key时生成的私钥文件未用3DESencryption。 是否有可能强制sshd使用encryption密钥,而不encryption整个磁盘?
我认为它与Apache-over-ssl使用密钥的方式类似。 如果是encryption的,每次运行Apache时都必须input密码才能解密私钥。 sshd是否有类似的function?
这不会帮助。 有人可以从文件中窃取密钥的唯一方法是获得root权限。 如果他们拥有root访问权限,他们可以用logging解密密码的sshdreplace,或者可以从正在运行的sshd进程的内存中读取密钥。
所以无论哪种方式,获得root访问权限的人都可以轻松获得私钥。 您将需要一个物理硬件设备来保存密钥或一个独特的安全机器来保存它。 你不能这样做,仍然在同一台机器上的软件中处理密钥。