Windows環境でのSSHの利用とSSH鍵の作成

 UNIXやLinuxでは、リモートからシステムにログインして操作を行う際にSSH(Secure SHell)を利用するのが一般的だ。本記事では、Windowsで動作するSSHクライアントであるPuTTYを使用して、Windows環境でリモートアクセスを行う方法を解説する。

Windowsで利用できるSSHクライアント

PuTTY
図1 PuTTY

 PuTTYはWindows専用に実装されたSSHクライアントだ(図1)。専用のコンソールウィンドウを備えており、GUIで各種設定や操作が行えるためCUIに不慣れなユーザーでも使いやすい。また、コマンドプロンプトから利用するCUIのクライアントや、SSH秘密鍵/公開鍵の作成ツールも同梱されている。以下では、これらを使ってリモートのLinux/UNIXサーバーにアクセスする方法について解説する。

 なお、Windowsで利用できるSSHクライアントとして、UNIX向けのコマンドラインツールであるsshのCygwin移植版もある。UNIX/Linux環境でsshを利用しているユーザーや、Cygwinをすでに使用しているなら、こちらを使用するのも良いだろう。また、Windows用には他にもTera Termが存在する。

PuTTYのダウンロードとインストール

 PuTTYのダウンロードページでは、PuTTYのほかscpクライアントのPSCP、SFTPクライアントのPSFTP、SSH鍵生成ツールであるPuTTYgenなどのバイナリが入手できる。それぞれのツールは個別にダウンロードできるが、TelnetクライアントであるPuTTYtel(多くの場合、このツールは不要だろう)以外をまとめたZIPファイルやインストーラが用意されているので、こちらをダウンロードするとよいだろう。PuTTYのインストールは、ダウンロードしたPuTTYのバイナリを適当なフォルダにコピーする、もしくはインストーラを実行するだけだ。

PuTTYでSSH接続を行う

図2
図2 PuTTYの接続設定ダイアログ

 PuTTYを起動すると、図2のようなダイアログが表示される。ここで「Host Name」に接続したいサーバーのホスト名、もしくはIPアドレスを指定し、「Open」をクリックするとサーバーへの接続が行われる。「<ユーザー名>@ホスト名」という形式で接続に使用するユーザー名を指定することも可能だ。サーバーへの初回接続時はサーバー側のホストキーが登録されていない旨が表示されるので、鍵のfingerprintを確認し、問題がなければ「はい」をクリックする(図3)。PuTTYのターミナルウィンドウが表示されるので、ログインに使用するユーザー名とパスワードもしくはパスフレーズを入力しよう(図4)。

図3 図4
図3 サーバーへの初回接続時は確認ダイアログが表示される 図4 「login as: 」でログインユーザーを入力し、続いてパスワードを入力する

SSH鍵を作成・登録する

 サーバーによっては、SSHによるリモート接続にSSH公開鍵の登録が必要なことがある。PuTTYで使用するSSH鍵は、PuTTYgenで作成できる。また、UNIX/Linuxのssh-keygenコマンドで作成した秘密鍵を、PuTTY用に変換する機能も備えている。

 PuTTYgenを起動すると、図5のようなダイアログが表示される。ここで「Generate」をクリックすると新規にSSH鍵を生成する画面になり、ダイアログの上でマウスを動かすことで乱数が生成されて秘密鍵/公開鍵が生成される。(図6)。最後に「Save public key」および「Save private key」をクリックして公開鍵および秘密鍵を保存すればよい(図7)。

 また、ssh-keygenで作成した秘密鍵を変換する場合は「Load」をクリックする。ファイル選択ダイアログが表示されるので、ssh-keygenで作成した秘密鍵ファイルを選択し、鍵のパスフレーズを入力する(図8)。PuTTYgenに秘密鍵がロードされるので、続けて「Save private key」をクリックして秘密鍵を保存しよう。公開鍵については変換前のものと同じものが使用できる。

 なお、秘密鍵はセキュリティ保持のため、ほかのユーザーからアクセスできないフォルダに保存しておこう。

図5 図6
図5 PuTTY用のSSH鍵生成ツール「PuTTYgen」 図6 マウスを動かすと鍵に必要な乱数が生成される

図7 図8
図7 SSH鍵の作成後、「Save public key」で公開鍵、「Save private key」で秘密鍵をそれぞれ保存できる 図8 インポートの際、ssh-keygenで作成した鍵のパスフレーズの入力を求められる

SSH鍵を使ってSSH接続を行う

 認証にSSH鍵を利用する際は、PuTTYの設定ダイアログの「Connection」-「SSH」-「Auth」項目の「Private key file for authentication」で、接続に使用するSSH秘密鍵を指定する(図9)。なお、どのSSH秘密鍵ファイルを使うかという情報は保存されないので、毎回手動でパスを指定する必要がある。いちいち指定するのが面倒な場合は、接続設定を保存しておくとよいだろう。ホスト名や使用するSSH秘密鍵などを指定したのち、「Session」項目の「Saved Sessions」に適当な名前を入力して「Save」をクリックすれば、設定を保存できる(図10)。保存した設定を呼び出すには、登録された設定名をダブルクリックするか、「Load」をクリックすればよい。

図9 図10
図9 接続に使用するSSH秘密鍵は「Auth」項目で指定する 図10 「Saved Sessions」に適当な名称を入力して「Save」をクリックすると設定を保存できる

 また、常駐してSSH秘密鍵を保持するpageantを利用してもよいだろう(図10)。PuTTY用のSSH秘密鍵をpageant.exeにドラッグ&ドロップしてパスフレーズを入力すると、pageantがタスクバーの通知領域に常駐し、必要に応じて指定したSSH秘密鍵が自動的に使用されるようになる。

図10
図10 pageantを常駐させておくと、SSH秘密鍵の選択やパスフレーズの入力を自動化できる