Using OpenSSL from the command line in Linux, is there some way to examine a key (either public or private) to determine the key size?
Asked
Active
Viewed 9.5k times
95
-
1There are many different ways depending on the format of the keypair. Were you looking at a specific format? – Zoredache Oct 27 '11 at 19:55
-
1As a rule of thumb, the size (in bytes) of a .pem RSA private key is roughly 3/4 of the size of the key length (in bits) - e.g. a 4096-bit key might be roughly 3247 bytes. File sizes do vary though. – mwfearnley Dec 03 '19 at 11:34
2 Answers
118
openssl rsa -in private.key -text -noout
The top line of the output will display the key size.
For example:
Private-Key: (2048 bit)
To view the key size from a certificate:
$ openssl x509 -in public.pem -text -noout | grep "RSA Public Key"
RSA Public Key: (2048 bit)
MikeyB
- 38,725
- 10
- 102
- 186
Shane Madden
- 112,982
- 12
- 174
- 248
-
1And if he is using DSA, or something else. How about determining the key size from the public key(cert). – Zoredache Oct 27 '11 at 19:51
-
@Zoredache Yeah - I could have sworn the question said "private key" specifically; either I'm losing it or an edit beat the 5 minute timer. – Shane Madden Oct 27 '11 at 20:13
-
4
16
The first (2048) is the bit length of the key:
$ ssh-keygen -lf /etc/ssh/rsa_key.pub
2048 91:1c:ae:17:16:...
Adrien P.
- 739
- 3
- 9
-
8
-
This would actually work on a private key generated by `openssl genrsa`. You would probably have to point it directly to the private key file though. – mwfearnley Mar 19 '21 at 14:40