密码可以嵌入私钥文件中吗?

密码可以嵌入私钥文件中吗?

我有一些关键文件

----BEGIN RSA PRIVATE KEY-----
SOMEGARBAGECHARACTERS
-----END RSA PRIVATE KEY-----

但是当我尝试与 ssh 一起使用它时,它会要求输入一些密码:

ssh -i mykey.pem [email protected]
Enter passphrase for key 'mykey.pem':

这是否意味着该文件中某些关键短语被编码了?还是意味着其他什么?

更新

没有任何 DEK 线或其他东西。只有均匀的随机字符。

更新2

密钥文件不知何故损坏了。我通过电子邮件收到了它,并将其复制粘贴到文本编辑器中。没有明显的差异,但实际上它们存在。在我用原始编辑器打开电子邮件并以这种方式复制/粘贴密钥后——一切都正常了。

正如@Jakuje 所建议的,我使用了openssl该工具但报告了错误。

答案1

OpenSSH 要求输入每个垃圾输入的密码。打开错误上游。这可能会让很多用户感到困惑。

检查背后内容的唯一方法是直接使用 openssl:

openssl rsa -text <mykey.pem

它应该要求输入密码或报告密钥中的任何其他错误。

答案2

这意味着密钥本身是使用密码加密的。要使用密钥登录,ssh 首先需要解密它。

答案3

创建私钥时,您可以选择使用密码来保护它。如果您 100% 确定没有人(也没有病毒或任何东西)会复制该密钥,那么您可以不用它。如果密钥用于没有价值的东西(例如本地测试机,上面没有任何重要的东西),情况也是如此。否则,使用密码是一种很好的做法。

如果私钥受到保护,则密钥将使用该密码进行加密,您需要使用该密码才能解锁密钥。因此,SSH 要求输入密码才能使用密钥是正常的。

相关内容