我怎么知道* .pem是否受ssh-keygen密码保护?


Answers:


25

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

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

该命令中的标志是:

-y Read private key file and print public key.
-f Filename of the key file.

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


1
我希望更多的人能像在这里一样完成对旗帜的解释:)
Martin Nielsen

15

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

RSA密码

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

AAp6xVAtPP/qmr8T1WjAac8jjfQmToW8Hd4ik95zA/fkH2SJgy7hwuyl1AuVyQuq

没有密码的RSA

-----BEGIN RSA PRIVATE KEY-----
MIIJJwIBAAKCAgEAwwXQEPzdutisd8Wl/TSNrp4HVnY7R87at30OiN46GcPPcV6q

带密码的DSA

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

MVJ+F/AoJKW/XGtx0N2yrmLfJc276XIZzGYHRuCHmxUXlRkWpmi9gSUO8bNWgymf

没有密码的DSA

-----BEGIN DSA PRIVATE KEY-----
MIIBuwIBAAKBgQD1qn6U7ve6yqHTu1XuiOyF/9A+n3MJFXNrTt9jHg7Pn5zssqwO

带密码的ECDSA

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

LrGoz5tXNI4KMxx7zb1H6beJZ8kEwc2FLLglD0kNzilTLeNMooC1NoMNhRD9XCo6

没有密码的ECDSA

-----BEGIN EC PRIVATE KEY-----
MHcCAQEEILU3EwLQa2rSZdIMkbiE5VDrjlcoeJEF5IsYfGy0Hz4JoAoGCCqGSM49
AwEHoUQDQgAEHJCNvU9hVeByhp9CpSmvHphb82iSp52pL0ZJqVvqFY/swXPB1NMU

3
检查“ Proc-Type:4,ENCRYPTED”适用于传统的加密密钥,但不会以新的OpenSSH私钥格式(以开头-----BEGIN OPENSSH PRIVATE KEY-----)显示- 此处有更多详细信息
Honore Doktorr,2016年

5

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

ssh-keygen -p -P "" -N "strong-password" -f unprotected.pem

4

如果以下命令要求输入密钥,则该密钥受密码保护。

openssl rsa -in myfile-privkey.pem -noout
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.