24日目:SSH Keyについて


2回生のノスです.

皆さんSSHは利用しているでしょうか?
SSHはSecure Shellと呼ばれ,暗号化などの技術を利用して安全にリモートコンピュータと通信できる技術です.
私は普段Windowsを使っているのですが,会内でBash on Ubuntu on Windowsが流行りだし,擬似的なLinux環境を手に入れたのでSSH環境も整えようということで鍵の設定をしたので,SSH Keyについて簡単に書きたいと思います.

SSH Keyを生成するには
$ssh-keygen
とすれば秘密鍵と公開鍵のファイルが~/.ssh下に生成されます.
この場合,署名方式は自動的にrsa 2048bitに設定されます.
秘密鍵をホストの.ssh下に置き,公開鍵を接続先の.ssh下にauthorized_keysとして保存すれば鍵を使用してSSH接続することができます.
rsa 2048bitは現時点では安全と言われていますが,おそらく数年から十数年ほどで安全ではなくなります.
その時に鍵を生成し直すのは面倒ですし,どうせならもっと安全な鍵を使いたいので署名方式の設定をしてあげます.

$ssh-keygen -t (署名方式) -b (鍵のbit数)
とすることで署名方式と鍵長を指定することができます.
現在では署名方式としてrsa,dsa,ecdsa,ed25519が指定できます.
それぞれの署名方式について簡単に説明します.

rsa
大きな素数の積の素因数分解の難しさと,離散対数問題の難しさを利用した署名方式です.
鍵長は768bitから16384bitの間で自由に決めることができます.
現在安全とされている鍵長は2048bit以上です.

dsa
離散対数問題の難しさを利用した署名方式です.
鍵長は1024bitしか選択できません.
基本的にdsaを使うならrsaを使ったほうが良いです.

ecdsa
楕円曲線離散対数問題の難しさを利用した署名方式です.
鍵長は256bit,384bit,521bitから選択できます.
鍵長は短いですが,256bitでもrsa 2048bitよりも安全性が高いです.

ed25519
効率の良いパラメータを用いたecdsaです.
鍵長は256bitのみです.
ecdsaよりも安全だと言われています.

これらの中から署名方式を選ぶ事ができますが,私はecdsaとed25519が好きです.
なぜなら鍵が短くて済むからです.短くて済むのにわざわざ長い鍵を保存する意味もないですし.
私はRCCのVPSにはed25519,学内にはrsaを使っています.
本当は学内へのSSHもed25519やecdsaにしたいのですが,学内のSSHのバージョンが低すぎて使えないため,rsaを使用しています.

皆さんも安全な鍵を使って便利で安全にSSHを使いましょう.

 


次回の記事は「人類はデジタル絵を描いていけ(ぱちお講座)」です。お楽しみに!

カテゴリー: 2016年度, アドベントカレンダー パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です