(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Linux/SSH】ssh-keygenで生成された鍵のビット数を確認する

スポンサーリンク

やりたいこと

既に作成済の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-keygenlオプションを利用する。

例えば以下のように表示された場合は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

以上、ご参考になれば幸いです。