RSA公開鍵と秘密鍵の作成(Windows編)

WindowsでRSA鍵を作成する場合は、PuTTYオリジナル版やWinSCPに付属するputtygen.exeを利用する。
puttygen.exeを起動したら、まずウィンドウ下部のラジオボタンで[SSH2 RSA]を選択する。次に[Generate]ボタンをクリックし、赤枠で示した辺りでマウスポインタをでたらめに動かす。マウスポインタの動きが、暗号を生成するための乱数の基数となる。
プログレスバーが右端に達するまでマウスを動かし続けると、パスフレーズ入力用のテキストボックスが表示される。「Key passphrase」と「Confirm passphrase」に、それぞれ同じパスフレーズを入力する。
パスフレーズを入力したら、[Save public key]ボタンで公開鍵、[Save private key]ボタンで秘密鍵を保存する。ファイル名は何でもよいが、公開鍵は「~.pub」、秘密鍵は「~.priv」とでもしておくと分かりやすいかも。
次に、公開鍵をサーバに転送する。本来であればネットワークを使用せずにFDなどでコピーした方がよいのだが、「サーバを外部にさらしていない」という前提のもと、scpでコピーする。WinSCPを使えばいいだろう。
普段使用する一般ユーザーのアカウントで接続し、サーバにある「そのユーザーの」ホームディレクトリに保存する。
puttygen.exeで生成した鍵は、OpenSSHでは使えないので、OpenSSH形式に変換する。PuTTYなどでサーバに接続し、
$ ssh-keygen -i -f hogehoge.pub > fugafuga.pub
を実行する。hogehoge.pubが、puttygen.exeで生成したRSA公開鍵、fugafuga.pubが変換したRSA鍵のファイル名だ。
もしsshを使用するユーザー(rootは不可)のホームディレクトリに.sshディレクトリがない場合は、ディレクトリを作成してパーミッションを変更する。
$ mkdir $HOME/.ssh
$ chmod 700 $HOME/.ssh
次に、RSA公開鍵を$HOME/.ssh/authorized_keysに追加し、同じくパーミッションを変更する。.sshディレクトリを新規作成した場合、当然だがauthorized_keysというファイルは存在しないが、問題ない。
$ cat fugafuga.pub >> $HOME/.ssh/authorized_keys
$ chmod 600 $HOME/.ssh/authorized_keys
以上でRSA鍵の準備は完了。


Reichsarchiv ~世界帝王事典~
京極夏彦作品人名辞典