Putty による鍵交換による SSH 接続
1. PuTTY における SSH 鍵生成
putty.exe と同じフォルダにある puttygen.exe を起動する。
起動したら、Parameters にある「SSH-2 RSA」か「SSH-2 DSA」を選択する。SSH-1 には脆弱性があるため、「SSH-1 (RSA)」は選択しないこと。「Number of bits in a generated key:」は「1024」のままでよい。
項目を設定したら、「Generate」ボタンを押す。「Key」のプログレスバーの下にあるスペースで、マウスをグリグリして秘密鍵と公開鍵を生成する。
2. 秘密鍵と公開鍵を保存する
秘密鍵と公開鍵の生成が完了したら、「Key passphrase:」と「Confirm passphrase:」にパスワードを入力する。「Key Comment:」にどのパソコンで生成した秘密鍵と公開鍵がわかるように、半角英数字でコメントを入力する。
「Actions」にある「Save public key」ボタンを押して、公開鍵を保存する。ファイル名は暗号方式の「RSA」か「DSA」のどちらで生成されたものかわかりやすいように、「id_rsa.pub」や「id_dsa.pub」で保存すると良い。保存場所は任意だが「C:\Documents and Settings\UserName\Application Data\Putty」に保存すると、あとあと探しやすいと思われる。
次に「Save private key」を押して、秘密鍵を公開鍵と同じフォルダに保存する。保存名は公開鍵と同様に暗号方式がわかるようにしておくと良い。「id_rsa.ppk」や「id_dsa.ppk」など。
「Public key for pasting into OpenSSH authorized_keys file:」の文字列は、サーバーにログインをするためのファイルに保存する文字列である。この文字列は、公開鍵を用いてサーバー側で生成するか、もしくはそのまま保存して利用できる。
3. 公開鍵をサーバーに登録する
ローカルで生成した公開鍵を用いて、サーバーに公開鍵を登録するために下記を実施する。
SFTP で接続できる Filezilla を用いて、公開鍵をサーバーに転送するか、SSH でサーバーにログインをする。
公開鍵を SFTP で転送した場合は、
% ssh-keygen -i -f ./id_rsa.pub >> ~/.ssh/authorized_keys % chmod 0600 ~/.ssh/authorized_keys
と実行する。もし、SSH でログインをした場合は、
% vi ~/id_rsa.pub
と実行し、公開鍵のデータをテキストエディタで保存し、
% ssh-keygen -i -f ./id_rsa.pub >> ~/.ssh/authorized_keys % chmod 0600 ~/.ssh/authorized_keys
を実行すれば、サーバーに公開鍵が保存される。もし、ホームディレクトリに .ssh のディレクトリがない場合は、
% mkdir ~/.ssh
% chmod 0700 ~/.ssh
と実行して、ディレクトリを事前に生成しておく。
「Public key for pasting into OpenSSH authorized_keys file:」の文字列をサーバーに保存する場合は、直接「~/.ssh/authorized_keys」に保存する。
% ssh-keygen -i -f ./id_rsa.pub >> ~/.ssh/authorized_keys
で公開鍵を生成した場合、~/.ssh/authorized_keys を開くことで、~/.ssh/authorized_keys に保存された文字列と「Public key for pasting into OpenSSH authorized_keys file:」の文字列が同じ内容であることが確認できる。