やりたいこと
既に作成済のSSH用の鍵のビット長(鍵長)を確認したい。
# cat id_rsa -----BEGIN PRIVATE KEY----- XwggSUXkAgSEAAoIBAQC2REYe...
環境情報
- Red Hat Enterprise Linux Server 7.5
- openssl.x86_64 1:1.0.2k-12.el7
やり方
ssh-keygen
のl
オプションを利用する。
例えば以下のように表示された場合は2048Bitで鍵が生成されていることが分かる。
# ssh-keygen -l -f id_rsa 2048 SHA256:XX no comment (RSA)
ちなみに同ファイルの権限が適切でない(例えば必要以上に権限がついている)場合は以下のようにエラーになるので権限変更が必要となります。
# ssh-keygen -l -f id_rsa @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0644 for 'id_rsa' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored.id_rsa is not a key file.
補足
試しに以下で1024ビットのRSA鍵を作成すると
# ssh-keygen -b 1024 Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): /tmp/test_id_rsa Enter passphrase (empty for no passphrase): Enter same passphrase again: ... The key fingerprint is: SHA256:0D8FpNpHFa15yY3gSszqHwXcgFAqkKI535zavh9vZXX
確認したファイルは確かに1024ビットと表示されます。
# ssh-keygen -l -f id_rsa 1024 SHA256:0D8FpNpHFa15yY3gSszqHwXcgFAqkKI535zavh9vZXX .. (RSA)
また、このビット数はファイルサイズにも表れていて、以下が4096bitで作成した鍵ペアで
# ls -l total 8 -rw-------. 1 root root 3243 ... id_rsa -rw-r--r--. 1 root root 739 ... id_rsa.pub
1024bitで作成した鍵ペアが以下となります。
# ls -l total 8 -rw-------. 1 root root 887 ... id_rsa -rw-r--r--. 1 root root 227 ... id_rsa.pub
以上、ご参考になれば幸いです。