测试SSH私钥是否有密码保护

dai*_*isy 9 ssh openssh

我正在尝试测试是否~/.ssh/id_rsa真的受密码保护。

当您运行时,ssh-keygen您可以选择一个空密码,我正在尝试检测这一点。

单线可以吗?

Rom*_*nov 14

如果执行:

ssh-keygen -y -f ~/.ssh/name_of_key
Run Code Online (Sandbox Code Playgroud)

如果没有这样的密码,您将打印密钥:

ssh-keygen -y -f ~/.ssh/id_dsa
ssh-dss AAAAB3NzaC1kc3M....
Run Code Online (Sandbox Code Playgroud)

如果有密钥的密码,您将被要求提供

  • 除此之外,`SSH_ASKPASS=/bin/false ssh-keygen -y -f test_rsa < /dev/null` 只会失败,而不是要求输入密码。 (5认同)

Sou*_*rav 6

如果您在文本编辑器中打开私钥文件,您将能够ENCRYPTED在 RSA/DSA 密钥文件的第二行中看到。例如:

 -----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,373B504621779D53C72BADE597C531A0
Run Code Online (Sandbox Code Playgroud)

  • 除非您使用新的 OpenSSH 密钥格式。 (4认同)
  • 如果您使用新的 OpenSSH 密钥格式? (2认同)