我有一个文件myfile-privkey.pem
。
如何使用 ssh-keygen 检查私钥文件是否受密码保护?
答案1
ssh-keygen -y -f myfile-privkey.pem
如果密钥受密码保护,您将看到“密码:”提示。
此命令中的标志为:
-y Read private key file and print public key.
-f Filename of the key file.
作为额外的指导,在处理私钥时,请务必检查某人(尤其是在线)告诉您使用的命令。
答案2
查看 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
如果以下命令要求输入密钥,则它受到密码保护。
openssl rsa -in myfile-privkey.pem -noout
答案4
如果没有保护,可以设置密码:
ssh-keygen -p -P "" -N "strong-password" -f unprotected.pem