多くのレンタルサーバでは、設定やメンテナンスのためにSSH2サーバに接続する必要がある。SSH2サーバでは公開鍵認証が推奨されることが多い。PuTTY ごった煮を利用すれば、Windows OSでも公開鍵/秘密鍵の生成と認証が可能だ。
対象OS:Windows 2000/Windows XP/Windows Vista/Windows 7/Windows Server 2003/Windows Server 2008/Windows Server 2008 R2
レンタルサーバやUNIX/Linux/FreeBSDベースのサーバでは、各種設定やメンテナンスにSSH2サーバが使われていることが多い。しかしWindows OSはSSH2サーバに接続する機能を持っていない。
そこでTIPS「Windowsでsshクライアント「PuTTY」を使う」では、Windows用SSH2クライアントソフトウェアの1つ「PuTTY」を使って、Windows OSからSSH2サーバに接続する手順を説明した。
このTIPSでは、サーバの初期セットアップ時によく利用されるパスワード認証を例に取り上げた。しかしSSH2は、この他の認証方式もサポートしており、公開鍵暗号もその1つに挙げられる。
公開鍵暗号は、ユーザーごとに作成した公開鍵と秘密鍵をそれぞれサーバとクライアントに配置して認証および暗号化/復号に利用する方式で、パスワード認証に比べて突破されにくく安全とされる。そのため、実際にSSH2サーバでは公開鍵認証がよく利用されている。
PuTTYも公開鍵認証をサポートしている。そこで本TIPSでは、PuTTYでSSH2の公開鍵認証を実現するために、鍵の生成と配置、認証(ログイン)までの手順を説明する。
PuTTY日本語版には複数のバージョンがある。以下では、蛭子屋双六氏の「PuTTY ごった煮」を例に挙げている。
以下では、新たに公開鍵/秘密鍵のペアを作成するという前提で説明する。既存の公開鍵/秘密鍵を流用する場合の手順や注意点については、別途解説したい。
また、PuTTYは既にインストールしてあるものとする。インストール手順や最初のセットアップについては、別のバージョンではあるが、TIPS「Windowsでsshクライアント「PuTTY」を使う」が参考になるだろう。
まずは認証に用いる公開鍵と秘密鍵のペアを作成する。それには、スタートボタンから[すべてのプログラム]−[PuTTY ごった煮]−[PuTTYgen]をクリックする。
「PuTTY 鍵生成」というダイアログが表示されたら、[生成]ボタンをクリックしてから[鍵]の枠内にマウスカーソルを載せ、プログレスバーが右端に到達するまでマウスカーソルを動かし続ける。この操作により乱数が発生し、ユニークな鍵のペアが生成される。なお、[パラメータ]はデフォルトのままでよい。
プログレスバーが右端に到達すると鍵の生成が完了し、バーの代わりに公開鍵の内容が表示される。
次はパスフレーズと鍵のコメントを指定する。パスフレーズはパスワードの代わりになるもので、ログイン時に入力する必要がある。覚えやすい英単語と記号、スペースなどを使って数十文字の長さの文字列を指定すること(長いほど突破されにくく安全)。もちろんパスフレーズを忘れるとログインできなくなる(一緒に生成した秘密鍵が使えなくなる)ので注意する。
コメントは鍵(公開鍵と秘密鍵の両方)のファイルに書き込まれるため、その鍵の目的などを記しておくと鍵の管理に役立つ(何の鍵か分からなくなったときの手かがりになったりする)。
次は、公開鍵/秘密鍵をファイルに保存する:
公開鍵はSSH2サーバの実装によって形式が異なるため、このように2つ保存しておき、あとでサーバに合わせてどちらかを選んで配置する必要がある。また秘密鍵は漏れないように、自分しかアクセスできないフォルダに保存するなど、厳重に管理すること。
これで鍵の生成と保存は完了なので、PuTTYgenを終了する。
次は、保存した公開鍵をサーバに転送して認証に利用できるようにする。ただし、鍵のファイルをサーバに転送する方法は、FTPを使ったり、管理者に依頼して保存してもらったりなど、サーバごとに異なるので、サーバ管理者に確認していただきたい。
以下では、SSH2サーバの種類に応じて、どの公開鍵ファイルをどこに配置すればよいのか説明する。
■SSH2サーバがOpenSSHの場合
■SSH2サーバが製品版SSHの場合
どちらの場合も、公開鍵ファイルの保存時に改行コードをサーバに合わせて変更する必要がある。Windowsでの改行コードは「CR(0x0D)+LF(0x0A)」だが、UNIX/Linux/FreeBSDのサーバは一般的に「LF(0x0A)」のみなので、「CR+LF」のままサーバに保存すると改行が正しく認識されず、誤動作を引き起こすことがある。
変換する方法はいくつかあるが、FTPで転送するならテキストモードでputすればよいし、nkfというコマンドが利用できるなら、次のコマンドラインで変換できる。
nkf -Lu <Windowsで生成した公開鍵ファイル> > <保存先ファイル>
改行コードの詳細については、TIPS「テキストファイルの行末コードを変更する」を参照していただきたい。
また、公開鍵ファイルおよびその保存先ディレクトリは、他人がアクセスできないようにして保護するのが望ましい。それにはchmodというコマンドを次のように実行する。
chmod 700 <保存先ディレクトリ>
chmod 600 <保存先ファイル>
以上で公開鍵認証の準備は完了だ。
スタートボタンから[すべてのプログラム]−[PuTTY ごった煮]−[PuTTY]をクリックしてPuTTYを起動したら、まずはパスワード認証時と同様に、ダイアログの左側ツリーから[セッション]を選んでホスト名とポート番号、接続タイプを指定する。
次に、左側ツリーから[接続]−[SSH]−[認証]を選び、[認証のためのプライベートキーファイル]に秘密鍵のファイルパスを指定し、[開く]ボタンをクリックする。
サーバへの接続が始まるとターミナルウィンドウが表示されるので、ユーザーIDとパスフレーズ(パスワードではない)を入力し、ログインに成功することを確認する。
[A]
PuTTYを終了するには、上記のターミナルウィンドウで「exit」と入力・実行する。
Copyright© Digital Advantage Corp. All Rights Reserved.