Windows TIPS
[Tool & Services]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

公開鍵認証でSSH2サーバにログインする(PuTTY編)

解説をスキップして操作方法を読む

デジタルアドバンテージ 島田 広道
2010/07/02
対象OS
Windows 2000
Windows XP
Windows Server 2003
Windows Vista
Windows Server 2008
Windows 7
Windows Server 2008 R2
多くのレンタル・サーバでは、設定やメンテナンスのためにSSH2サーバに接続する必要がある。
SSH2サーバでは公開鍵認証が推奨されることが多い。
PuTTY ごった煮を利用すれば、Windows OSでも公開鍵/秘密鍵の生成と認証が可能だ。

解説

 レンタル・サーバやUNIX/Linux/FreeBSDベースのサーバでは、各種設定やメンテナンスにSSH2サーバが使われていることが多い。しかしWindows OSはSSH2サーバに接続する機能を持っていない。そこでTIPS「WindowsからSSH2サーバに接続する(PuTTY編)」では、Windows用SSH2クライアント・ソフトウェアの1つである蛭子屋双六氏の「PuTTY ごった煮」を使って、Windows OSからSSH2サーバに接続する手順を説明した。

 このTIPSでは、サーバの初期セットアップ時によく利用されるパスワード認証を例に取り上げた。しかしSSH2は、このほかの認証方式もサポートしており、公開鍵暗号もその1つに挙げられる。これはユーザーごとに作成した公開鍵と秘密鍵をそれぞれサーバとクライアントに配置して認証および暗号化/復号化に利用する方式で、パスワード認証に比べて突破されにくく安全とされる。そのため、実際にSSH2サーバでは公開鍵認証がよく利用されている。

 PuTTYも公開鍵認証をサポートしている。そこで本稿では、PuTTY ごった煮でSSH2の公開鍵認証を実現するために、鍵の生成と配置、認証(ログイン)までの手順を説明する。

  操作方法

 以下では、新たに公開鍵/秘密鍵のペアを作成するという前提で説明する。既存の公開鍵/秘密鍵を流用する場合の手順や注意点については、別途解説する予定だ。

 また、PuTTY ごった煮はすでにインストールしてあるものとする。インストール手順や最初のセットアップについては、TIPS「WindowsからSSH2サーバに接続する(PuTTY編)」を参照していただきたい。

PuTTYgenで公開鍵/秘密鍵を生成する

 まずは認証に用いる公開鍵と秘密鍵のペアを作成する。それには、スタート・ボタンから[すべてのプログラム]−[PuTTY ごった煮]−[PuTTYgen]をクリックする。「PuTTY 鍵生成」というダイアログが表示されたら、[生成]ボタンをクリックしてから[鍵]の枠内にマウスカーソルを載せ、プログレス・バーが右端に到達するまでマウスカーソルを動かし続ける。この操作により乱数が発生し、ユニークな鍵のペアが生成される。なお、[パラメータ]はデフォルトのままでよい。

PuTTYgenで公開鍵/秘密鍵を生成する
スタート・ボタンから[すべてのプログラム]−[PuTTY ごった煮]−[PuTTYgen]をクリックすると、このダイアログが表示される。PuTTYgenは鍵の生成や変換を担うプログラムだ。
これを選ぶ(デフォルトでこれが選択されているはずだ)。
サーバ管理者やサービス提供者から特に指定がなければ、デフォルトの1024bitのままでよい。
これをクリックすると、鍵の生成が始まる。へ進む。
プログレス・バーが右端に到達するまで、バーの下の何もない領域内でマウスカーソルを動かし続ける。これにより乱数が発生して、ユニークな鍵のペアが生成される。

 プログレス・バーが右端に到達すると鍵の生成が完了し、バーの代わりに公開鍵の内容が表示される。

 次はパスフレーズと鍵のコメントを指定する。パスフレーズはパスワードの代わりになるもので、ログイン時に入力する必要がある。覚えやすい英単語と記号、スペースなどを使って数十文字の長さの文字列を指定すること(長いほど突破されにくく安全)。もちろんパスフレーズを忘れるとログインできなくなる(一緒に生成した秘密鍵が使えなくなる)ので注意する。コメントは鍵(公開鍵と秘密鍵の両方)のファイルに書き込まれるため、その鍵の目的などを記しておくと鍵の管理に役立つ(何の鍵か分からなくなったときの手かがりになったりする)。

鍵のパスフレーズとコメントを指定する
鍵の生成が終わったら、あとでログインするときに入力するパスフレーズと、鍵の目的などを表すコメントを指定する。
コメントはデフォルトで、鍵の種類(「rsa-key」の部分)と生成年月日(「-20100701」の部分)が指定される。これは公開鍵と秘密鍵の両方に付加されるので、鍵の目的が分かるような情報を付加すると、あとで管理するのに役立つ。
パスフレーズを入力する。覚えやすい英単語と記号、スペースなどを使って数十文字の長さの文字列を指定するのが一般的だ。忘れるとログインできなくなるので、長くても覚えやすい文字列が望ましい。
確認のため、と同じパスフレーズを指定する。

公開鍵/秘密鍵をファイルに保存する

 次は、公開鍵/秘密鍵をファイルに保存する:

  • 公開鍵(OpenSSH用): [OpenSSHのauthorized_keysファイルにペーストするための公開鍵]枠の文字列をすべて選択してコピーし、メモ帳などにペーストして「autorized_keys.txt」といったファイル名で保存
  • 公開鍵(製品版SSH用): [公開鍵の保存]ボタンをクリックして「id_rsa.pub」といったファイル名で保存
  • 秘密鍵: [秘密鍵の保存]ボタンをクリックして「id_rsa.ppk」といったファイル名で保存(クライアント側に保存したままログイン時に使用する)

 公開鍵はSSH2サーバの実装によって形式が異なるため、このように2つ保存しておき、あとでサーバに合わせてどちらかを選んで配置する必要がある。また秘密鍵は漏れないように、自分しかアクセスできないフォルダに保存するなど、厳重に管理すること。

公開鍵/秘密鍵をファイルに保存する
コメントとパスフレーズを指定してから、次の手順で鍵を保存する。は公開鍵で、この後にサーバへ転送する。は秘密鍵で、クライアントに保存したまま利用する。
この中の文字列をすべて選択してコピーし、メモ帳などのテキスト・エディタにペースト後、「authorized_keys.txt」といったファイル名で保存する。これはOpenSSHと呼ばれるSSH2サーバで使用する。
これをクリックして「id_rsa.pub」といったファイル名で保存する。これは製品版SSHあるいは商用SSHと呼ばれるSSH2サーバで使用する。
これをクリックして「id_rsa.ppk」といったファイル名で秘密鍵を保存する。これは漏らさないように、自分しかアクセスできないように制限したフォルダに保存するなど、厳重に管理する。

 これで鍵の生成と保存は完了なので、PuTTYgenを終了する。

公開鍵をサーバに配置する

 次は、保存した公開鍵をサーバに転送して認証に利用できるようにする。ただし、鍵のファイルをサーバに転送する方法は、FTPを使ったり、管理者に依頼して保存してもらったりなど、サーバごとに異なるので、サーバ管理者に確認していただきたい。以下では、SSH2サーバの種類に応じて、どの公開鍵ファイルをどこに配置すればよいのか説明する。

■SSH2サーバがOpenSSHの場合

  • 公開鍵ファイル: authorized_keys.txt
  • サーバでの保存先ファイル名: ~/.ssh/authorized_keys
    「~/」はホーム・ディレクトリを表す。またOpenSSHの設定によってはファイル名を「authorized_keys2」にしなければならない場合もある。サーバ管理者に確認していただきたい。

■SSH2サーバが製品版SSHの場合

  • 公開鍵ファイル: id_rsa.pub
  • サーバでの保存先ファイル名: ~/.ssh2/authorization

 どちらの場合も、公開鍵ファイルの保存時に改行コードをサーバに合わせて変更する必要がある。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]をクリックしてPuTTYを起動したら、まずはパスワード認証時と同様に、ダイアログの左側ツリーから[セッション]を選んでホスト名とポート番号、接続タイプを指定する。次に、左側ツリーから[接続]−[SSH]−[認証]を選び、[認証のためのプライベートキーファイル]に秘密鍵のファイル・パスを指定し、[開く]ボタンをクリックする。

公開鍵認証時のPuTTYの設定
パスワード認証と同じサーバ(ホスト)の指定に加えて、の秘密鍵ファイルの指定も必要だ。
これを選択する。
接続先サーバのホスト名またはIPアドレスを入力する。
接続先サーバの待ち受けポート番号。通常はSSH2のデフォルトである22番ポートのままにしておく。
接続先サーバのタイプ。デフォルトの「SSH」のままにしておく。
の設定後、これを選ぶ。
PuTTYgenで保存した秘密鍵ファイルを指定する。
これをクリックするとサーバへの接続を始める。→

 サーバへの接続が始まるとターミナル・ウィンドウが表示されるので、ユーザーIDとパスフレーズ(パスワードではない)を入力し、ログインに成功することを確認する。

公開鍵認証時のターミナル・ウィンドウ
SSH2サーバとの接続が始まると、このログイン・メッセージが表示されるので、ユーザーIDとパスフレーズでログインできるか確認する。
  ユーザーIDを入力して[Enter]キーを押す。
  公開鍵認証を表す「Authenticating with public key 〜」というメッセージが表示される。
  PuTTYgenで指定したパスフレーズを入力して[Enter]キーを押す。パスワードではないので注意。
  ログインが成功した結果、表示されたメッセージ。この内容は接続先のサーバによって異なる。

 PuTTYを終了するには、上記のターミナル・ウィンドウで「exit」と入力・実行する。End of Article


この記事と関連性の高い別のWindows TIPS
WindowsからSSH2サーバに接続する(PuTTY編)
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「Windows TIPS」

TechTargetジャパン

Windows Server Insider フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH