sshキーのキータイプはなにがいいのか
sshキーを生成するためのコマンド
$ ssh-keygen
をオプションなしで実行するとデフォルトでキータイプrsaの長さ2048bitのキーペアが生成される。しかしオプションでキータイプやキーの長さを指定することができる。以下にssh-keygen
がサポートするキータイプをまとめた。
[-t key_type]
でキータイプ、[-b bits]
でキーの長さを指定できる。
key-gen
コマンドで生成できるキータイプとして、
- dsa
- ecdsa
- ed25519
- rsa
をサポートしている。
dsaは1024bits固定で、サポートしていないハードウェアが多いので好んで使う理由がない。 ecdsaはとdsaの改良版で
この中で最も安全でパフォーマンスの高いアルゴリズムed25519で、
$ ssh-keygen -t ed25519
で生成できる。鍵長は256bitsと決まっているので指定する必要はない。
2018年現在キータイプをrsaとする場合、最低でも2048bits、推奨は4096bitsということである。rsaはデフォルトで生成できるアルゴリズムで広く使われおり、サポートも心配がない。 デメリットとして計算量が多くなる、メモリを食う、2048bitsより大きいものをサポートしていないハードウェアがある等が挙げられる。
$ ssh-keygen -t rsa -b 4096
面白い記事を発見した。
GitHubユーザーのSSH鍵6万個を調べてみた - hnwの日記
4年前と少し古いが、GitHubのsshキーではrsaが圧倒的に多く使われているということである。一方で、ed25519はほとんど使われていない。
しかしこれからはサポートされているのを確認したら積極的にed25519を使うのがよい。その次にecdsa、rsa 4096bitsである。