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

我有一个文件myfile-privkey.pem

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

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

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

这个命令中的标志是:

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

作为额外的指导,总是检查命令的人,尤其是在线,告诉你在处理你的私钥时使用。

很容易看到SSH密钥是否被encryption。 只需寻找Proc-Type: 4,ENCRYPTED 。 这里有几个不同forms的示例键。

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 

如果以下命令要求密钥,那么它是密码保护。

 openssl rsa -in myfile-privkey.pem -noout 

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

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