Pageant でパスフレーズの入力を省く
月曜日は腹痛でついに力尽きて、更新をサボってしまいました。申し訳ありません。今日から徐々に調子を上げていきたいと思いますので、ご勘弁くださいませ。
以前の記事で ssh-agent の使用方法をご紹介しましたが、その Windows 版とも言えるプログラムが PuTTY に付属しています。その名も Pageant。パスフレーズ入力の自動化はもちろん、認証鍵の転送機能もサポートしており、ssh-agent とほぼ同等の機能を持っています。今回はこの Pageant の使用方法をご紹介したいと思います。
なお、PuTTY 本体に関しては、Windows クライアントから SSH ログインするを参照してください。この記事は、既に PuTTY を使って公開鍵認証による SSH ログインが実現できていることを前提にしています。
Pegeant の起動
Pegeant の起動はとても簡単。単純にスタートメニューの [プログラム]-[PuTTY]-[Pegeant] を選択して起動するだけです。Pegeant を起動すると、タスクトレイにシルクハットをかぶった PC のアイコンが表示されます。
上図のように、アイコン上で右クリックするとメニューが表示され、認証鍵の登録などが行えます。
認証鍵の登録
タスクトレイアイコンのメニューで [View Keys] を選択すると、以下のような「Pageant Key List」ウインドウが表示されます。
ウインドウ下部の「Add Key」ボタンをクリックするとファイル選択ダイアログが表示され、認証鍵(秘密鍵)ファイルを登録できます。もし登録した認証鍵がパスフレーズを必要とするなら、この時点で入力を促してきます。ちょうど ssh-agent における ssh-add コマンドと同じですね。登録した認証鍵はリストに表示され、選択して「Remove Key」ボタンをクリックすることで削除できます。
また、以下のようにコマンドラインで起動と同時に認証鍵を登録することもできます。
"C:\Program Files\PuTTY\pageant.exe" C:\SSH\foo.PPK C:\SSH\bar.PPK
必要な認証鍵を指定したショートカットを作っておくと便利かもしれませんね。
パスフレーズの入力を自動化
それでは Pageant を利用した SSH ログインに挑戦してみましょう。まずは前述の方法で Pageant を起動し、必要な認証鍵を登録してください。あとは、その認証鍵を使って PuTTY で普通にログインするだけです。Pageant が起動していることが自動的に検出され、登録されている(パスフレーズによる暗号化が解除された)認証鍵が優先的に使用されます。登録されている認証鍵を使う限り、パスフレーズを尋ねてくることはありません。
認証鍵の転送
Pageant は ssh-agent と同じく、認証鍵の転送機能を持っています。これを利用すれば、たとえログイン先のサーバーに認証鍵がなくても、ローカルにある認証鍵を使用してログイン先からさらに別のサーバーに SSH 接続を確立できます。サーバーに秘密鍵を保存する必要が無いため、秘密鍵の流出の危険を大幅に削減できます。
Pageant による認証鍵の転送は以下の手順で利用できます。
- Pageant を起動し、必要な認証鍵を登録する。
- PuTTY を起動する。
- 普通に SSH ログインするのですが、その際に [接続]-[SSH]-[認証] の「エージェントフォワーディングを認める」にチェックを入れておきます。もしくは、起動時に "-A" オプションを指定する方法もあります。
- ログイン先で、さらに "ssh <ユーザー名>@<ホスト名>" などとしてさらに別のホストにログインします。
- Pageant に必要な認証鍵が登録されていれば、正常にログインできるはずです。
なお、Pageant で認証鍵の転送機能を利用するためには、ログイン先の SSH サーバーが OpenSSH でなければなりません。本家 SSH は OpenSSH とは別のプロトコルを使用しており、そちらは Pageant ではサポートされていません。
本日は、PuTTY 用の認証エージェントである Pageant の使い方をご紹介しました。とくに WinSCP の編集機能を利用する際などはパスフレーズを度々要求されるので、Pageant を起動しておくと楽チンです(WinSCP 自体も Pageant に対応しています)。ぜひ活用してください!(^^)
詳しくはこちらの記事をどうぞ!
この記事にコメントする