📜  加载键“.pem”:权限错误 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:50:24.676000             🧑  作者: Mango

以'加载键“.pem”:权限错误 - Shell-Bash

这是一个Shell/Bash错误信息,通常是由于用户在加载具有不正确权限的PEM键时出现的。

错误描述

当用户尝试使用OpenSSL等工具加载带有PEM扩展名的密钥文件时,可能会遇到以下错误提示:

$ openssl pkcs12 -in key.p12 -out key.pem -clcerts
Enter Import Password:
MAC verified OK
PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048
Certificate bag
Certificate bag
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
Error outputting keys and certificates

或者:

$ ssh -i key.pem ec2-user@ip-XXX-XXX-XXX-XXX.ec2.internal
Load key "key.pem": Permission denied
错误原因

该错误通常是因为密钥文件的权限不正确。当用户的用户身份无法读取或打开密钥文件时,就会发生权限错误。

解决方案
  1. 检查密钥文件的权限

用户需要使用以下命令来检查密钥文件的权限:

$ ls -l key.pem
-rw------- 1 ec2-user ec2-user 1686 May 28 00:43 key.pem

该命令将显示关于密钥文件的详细信息,包括拥有者和组、文件权限以及文件最后修改日期和时间。在上面的示例中,-rw-------表示文件只对所有者具有读写权限。

如果密钥文件的权限不是-rw-------(即只有拥有者可以读取和写入文件),则需要使用chmod命令更改文件的权限:

$ chmod 600 key.pem
  1. 检查密钥文件的所有者和组

用户需要使用以下命令来检查密钥文件的所有者和组:

$ ls -l key.pem
-rw------- 1 ec2-user ec2-user 1686 May 28 00:43 key.pem

如果密钥文件的所有者或组不是当前用户或组,则需要使用chown命令更改文件所有者或组:

$ sudo chown ec2-user key.pem

或者:

$ sudo chgrp ec2-user key.pem
  1. 确认密钥文件存在

用户需要确保他们正在尝试加载的密钥文件实际上存在。

可以使用以下命令检查文件是否存在:

$ ls -l key.pem

如果文件不存在,则需要重新创建密钥文件。

总结

当用户尝试加载包含PEM扩展名的密钥文件时,出现权限错误是很常见的问题。这通常是由于密钥文件的权限不正确所致。用户可以使用chmod和chown命令更改文件的权限和所有者,以便正确加载密钥文件。如果文件不存在,则需要重新创建密钥文件。