長らく(10年以上)、SSHの鍵にRSAを使っていて、ずっと同じ鍵だし、最近SSHのハック話も多いので、そろそろ変えようかと思い立った。そもそも1024bitの鍵だったんので、この先10年は危ないのでそろそろ替えどきかと。。。
今どきは楕円暗号鍵を使うのが強度が強そうなのでそちらで新たに鍵構築。SSHは5.7からECDSAをサポートしているみたいです。鍵長は256,384,521bitから選べるようですが、ちょっと調べたところ256でもRSA2048bitより強いみたい。どうせなら一番強い521bitにしようかと思ったけど、楕円暗号は鍵長の3乗にで計算量が増えるらしいのと(RSAは鍵長の2乗)、521bitはFedora20がサポートしていないとか、他にもサポートしていないものもあるかもしれないので、なんとなく間の384bitにしてみました。
$ ssh-keygen -t ecdsa -b 384 Generating public/private ecdsa key pair. Enter file in which to save the key (/home/n10/.ssh/id_ecdsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/n10/.ssh/id_ecdsa. Your public key has been saved in /home/n10/.ssh/id_ecdsa.pub. The key fingerprint is: 40:11:bc:7e:09:5e:3e:5e:1a:7c:c3:f6:9e:11:90:5a n10@hoge The key's randomart image is: +--[ECDSA 384]---+ | .+o | | .. . | | .. E | | o..o . | | o =So . | | o B * . | | o B o. | | o .o | | .o | +-----------------+
というわけで、無事鍵が出来ました。
追記(2014-07-07)
OSX (Mavericks)ではデフォルトのSSHがECDSAに未対応のようです。バージョンは6.1なので本来は使えるはずなんですけどね。どういった理由かはわかりませんが、OSのアップデートを待つ以外だと、かなり複雑な手順が必要そうなのでおすすめではないですね。