我如何知道 *.pem 是否使用 ssh-keygen 进行密码保护?

Woj*_*tek 27 ssl ssl-certificate ssh-keygen

我有一个文件myfile-privkey.pem

如何使用 ssh-keygen 检查私钥文件是否受密码保护?

dmo*_*ati 28

ssh-keygen -y -f myfile-privkey.pem

如果密钥受密码保护,您将看到“密码:”提示。

此命令中的标志是:

-y Read private key file and print public key.
-f Filename of the key file.
Run Code Online (Sandbox Code Playgroud)

作为额外的指导,请始终检查某人(尤其是在线)告诉您在处理私钥时使用的命令。

  • 我希望更多的人能够像这里所做的那样真正解释这些标志:) (2认同)

Zor*_*che 17

很容易查看 SSH 密钥是否已加密。只需Proc-Type: 4,ENCRYPTED在体内寻找。以下是各种形式的几个示例键。

带密码的 RSA

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,AF51A101888567A12C6E384AFBD2B963

AAp6xVAtPP/qmr8T1WjAac8jjfQmToW8Hd4ik95zA/fkH2SJgy7hwuyl1AuVyQuq
Run Code Online (Sandbox Code Playgroud)

没有密码的RSA

-----BEGIN RSA PRIVATE KEY-----
MIIJJwIBAAKCAgEAwwXQEPzdutisd8Wl/TSNrp4HVnY7R87at30OiN46GcPPcV6q
Run Code Online (Sandbox Code Playgroud)

带密码的 DSA

-----BEGIN DSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,2B9F1E1503F57CCC663397AB03CBF3F9

MVJ+F/AoJKW/XGtx0N2yrmLfJc276XIZzGYHRuCHmxUXlRkWpmi9gSUO8bNWgymf
Run Code Online (Sandbox Code Playgroud)

没有密码的 DSA

-----BEGIN DSA PRIVATE KEY-----
MIIBuwIBAAKBgQD1qn6U7ve6yqHTu1XuiOyF/9A+n3MJFXNrTt9jHg7Pn5zssqwO
Run Code Online (Sandbox Code Playgroud)

带密码的 ECDSA

-----BEGIN EC PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,5A3BB12B9B9E17A9A569001A0498969D

LrGoz5tXNI4KMxx7zb1H6beJZ8kEwc2FLLglD0kNzilTLeNMooC1NoMNhRD9XCo6
Run Code Online (Sandbox Code Playgroud)

无需密码的 ECDSA

-----BEGIN EC PRIVATE KEY-----
MHcCAQEEILU3EwLQa2rSZdIMkbiE5VDrjlcoeJEF5IsYfGy0Hz4JoAoGCCqGSM49
AwEHoUQDQgAEHJCNvU9hVeByhp9CpSmvHphb82iSp52pL0ZJqVvqFY/swXPB1NMU
Run Code Online (Sandbox Code Playgroud)

  • 检查“Proc-Type: 4,ENCRYPTED”适用于传统的加密密钥,但它不会出现在新的 OpenSSH 私钥格式中(以 `-----BEGIN OPENSSH PRIVATE KEY ----- `) — [此处有更多详细信息](http://www.tedunangst.com/flak/post/new-openssh-key-format-and-bcrypt-pbkdf)。 (3认同)

Sto*_*one 7

如果以下命令要求提供密钥,则它受密码保护。

openssl rsa -in myfile-privkey.pem -noout
Run Code Online (Sandbox Code Playgroud)


小智 6

如果不受保护,您可以设置密码:

ssh-keygen -p -P "" -N "strong-password" -f unprotected.pem
Run Code Online (Sandbox Code Playgroud)