鍵交換方式を使ったSSH接続


言われてみれば、大学の授業の最初のほうで習ったなー程度の知識しかない、公開鍵暗号方式について少し自分の中で復讐。
というか2chで見つけたとある無料レンタル鯖(wkey.me)でSSHログインする際に必要でしたので、いい機会なので今後のためにも書き残しておきたいと思います。概念や仕組み等の説明は他のサイトにお願いするとして、このエントリーは具体的な使い方をメインに。


環境

PuTTYgen

まずは、みんな大好きPuTTYに付属されている?PuTTYgenを利用して秘密鍵と公開鍵を作っていきます。

予めタクスバーにPuTTYが登録してあれば、画像の様に右クリックでPuTTYgenを起動できると思います。



新規に作成する場合は、"Generate"をクリック。

マウスを少し動かす(ココ結構重要で、ただ待っていると進みません)と、鍵が作成されます。

オプションで"Key comment"部分のコメントを変更可能。
"Key passphrase"と再度"Confirm passphrase"に任意のパスフレーズを入力します。(省略可)


ここまで完了したら、秘密鍵、公開鍵を保存します。

秘密鍵


今回は、PuTTYで使用するので"Save private key"ボタンをクリックして、"***.ppk"と保存します。

しかし、OpenSSH形式で利用したい場合などには、"Conversions"→"Export OpenSSH key"から同様に"***.ppk"のように保存します。

公開鍵


こちらも同様に、PuTTYで使用する場合は"Save public key"ボタンをクリックして、公開鍵と理解しやすいように"***.pub"という拡張子で保存で保存します。
しかし今回の場合は、OpenSSH形式で利用したいので下の画像の赤で囲った部分をコピー&ペーストで利用します。

サーバでの準備

設定画面からShellユーザーの追加を行い、次の画像の様に"SSH-RSA Public Key"に先ほどコピーした公開鍵をペーストします。

これを保存して事前準備が完了しました。

SSHでログイン

では最後に、PuTTYを利用してログインしたいと思います。
公式サイトにもあるように、22番ポートではなく30890番ポートである点に注意が必要です。
必要事項を入力したら、"接続"→"SSH"→"認証"の"認証パラメータ"から"認証のためのプライベートキーファイル(K)"に先ほど保存した"***.ppk"を選択します。
あとは、いつも通り"開く"を選択すればログイン出来るかと思います。(接続前に設定の保存も忘れずに)


おわりに

つい面倒でパスワードでのSSH接続を許可にしがちですが、こういったセキュリティへの配慮は必要ですよね。
なかなか無料でSSHが使える共有サーバもないそうなんですが、SSH可、PHPPerlRubyも使える鯖、wkey.me。
せっかくなら、ScreenとかZshellも使えたら作業が捗るんですけどそこは今後に期待するとして、ぜひ使ってみてはどうでしょうか。ステマですね。w

参考にさせていただいたサイト