我认为如果不实际输入密码就不可能查看受密码保护的私钥文件的内容。
非常令人惊讶的是,我仍然可以看到我的私钥文件的内容,即使它受到了很好的密码保护。脚步:
$ ssh-keygen -t ed25519 -o -a 100
然后我输入我的密码。我稍等一下。过程结束了,然后我做一个cat
如下:
$ cat id_ed25519
令我大吃一惊的是,我可以清楚地看到我的私钥。
我想知道它是否有很好的密码保护。所以,我做了以下事情:
$ ssh-keygen -p -f ./id_ed25519
事实上,我必须输入我的“旧”密码。否则,它不承认它!
我错过了什么吗?如果我的理解是正确的,如果我的私钥文件是加密的,我不应该在文本编辑器中看到它的内容,对吧?我完全不知所措。
系统:MacOS Le Capitan,自制软件
加密密钥(受密码保护)和非加密密钥之间存在差异。所有密钥仍然是明文文件。下面我生成了一个密钥,没有密码,然后通过添加密码来保护它,你可以看到磁盘上文件的内容有何不同:
实际密钥是相同的,但密钥代理将无法使用后一个密钥,直到我用我的密码解锁它。无论哪种方式,我都拥有该文件,并且它必须存在于磁盘上,这意味着它可以显示(例如使用
cat
)。您还可以看到,当我显示修改后的密钥时,它明确表明它已加密。
您将始终能够(并且需要)“查看”您的私钥文件的内容,但它是加密的,因此看起来应该是乱码。您需要确保只有您(即您的用户 ID)可以看到它。为此,您需要:
此外,您可能希望将私钥保存在它们自己的目录中,以便您也可以对该目录进行 chmod。