pageant ログイン
2023/09/18 16:23
- 本手順について
- pageant
- pageant セットアップ
- puttygen.exe での .ppk (PuTTY Private Key Files) 作成
- 秘密鍵 (pageant への登録)
- 公開鍵 (OpenSSH サーバへの登録)
- 接続
- 検証環境
本手順について
ssh は、生成した秘密鍵・公開鍵のセットのうち、公開鍵をログイン対象に登録した後、秘密鍵を利用して対象にアクセスする方式です。Pageant は、秘密鍵の扱いを楽にしてくれるプログラムです。
概要としては、次の図のとおりです。
ええ、かなり分かりにくいですね。
ここでは主に、Putty で鍵のセットを生成するところから、Linux にどう登録し、どうアクセスするのか、というところまでを記載しています。
オレンジ系統は、端末で動いている Pageant が秘密鍵/公開鍵を管理していることを表しています。
公開鍵は、Teraterm でログインしたいサーバに置くファイルです。事前に置いておきましょう。
Teraterm が Pageant を利用する場合、Teraterm 起動時に次の指定を行います。
- 公開鍵を置いたサーバを指定すること。
- Pageant を利用すること
ダウンロードするファイル
さて、次の表は、本手順で必要となるファイルの一覧です。不足するようであれば、ダウンロードしておいてください。
No | ダウンロードファイル | URL | 用途 | 備考 |
---|---|---|---|---|
1 | pageant.exe | PuTTY 関連ファイル | 秘密鍵の運用 | |
2 | puttygen.exe | .ppk 形式での公開鍵/秘密鍵を生成 | 必要な場合のみ |
すでにインストールされている場合は、それぞれのソフトのインストール先を確認して読み替えてください。
Tera Term はすでにセットアップされているものとして扱っています。
必要であれば Tera Term の導入 を参照してください。
本手順でのファイル格納先
本手順で利用する各ファイルの格納先です。環境に合わせて読み替えてください。
対象ファイル | 格納先 | 備考 |
---|---|---|
pageant.exe | "C:\Users\Windows\Downloads\pageant\64bit\pageant.exe" | 64bit版をダウンロードしています。 |
puttygen.exe | "C:\Users\Windows\Downloads\pageant\64bit\puttygen.exe" | 64bit版をダウンロードしています。 |
公開鍵 | "C:\Users\Windows\Downloads\pageant\key\id_rsa_ppk.pub" | puttygen.exe で生成します。 |
秘密鍵 | "C:\Users\Windows\Downloads\pageant\key\id_rsa.ppk" | puttygen.exe で生成します。 |
ログイン対象 SSH サーバ
Linux (にインストールされた OpenSSH サーバ)へのログインを想定しています。鍵は、以降の手順で生成し、配置します。
pageant
pageant とは
pageant とは .ppk (PuTTY Private Key Files) 形式の秘密鍵/公開鍵方式で通信するための鍵を管理するソフトです。作成した .ppk 形式の秘密鍵をクライアント側で保持し、併せて作成した公開鍵をサーバ側へ登録することで、クライアントは OpenSSH サーバへのログイン時にパスフレーズなしでログインできるようになります。
と謳いつつ、実際には pageant.exe へ秘密鍵を登録するときに入力したパスフレーズが利用されます。
パスフレーズを入力せずに作成した秘密鍵ではパスフレーズの入力は不要になりますが、パスフレーズを利用した方がセキュリティ的に強固になります。
pageant の行うこと
pageant は、以下の機能を備えています。- 秘密鍵/公開鍵を所持する。
- 手続きに必要なデータ一式をそろえた要求があれば所持している秘密鍵で署名して返す。
こうすることで PuTTY 等のクライアントが秘密鍵を持たずに、かつ、ログイン事のパスワード入力を省力化 (省略ではない) したうえで暗号化した通信を行えます。
SSH1 と SSH2 とで署名する対象などの方式が違うようですが、内部でうまく処理してくれているようです。
pageant の行わないこと
通信自体は別なソフトを利用する必要があります。クライアントはサーバとやりとりするための共通鍵を pageant の署名で入手できるので、通信自体は問題なく暗号化して行えます。
また、署名を要求するクライアントの選別はしません。
なので Tera Term が pageant を利用しても問題ありませんね。
pageant セットアップ
ダウンロード
次の URL へアクセスしてください。https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
「Alternative binary files」の中から pageant.exe を任意のフォルダへダウンロードします。
実のところ、ダウンロードした pageant.exe はそのまま実行することもできるため、現状でインストールしたともいえます。
pageant.exe ファイルを移動すれば、そこがインストール先です。
32-bit もしくは 64-bit のどちらの OS を利用しているかでダウンロードするものを選択します。
自身の利用している CPU がどちらなのか不明な場合は 32-bit を利用すると安全*1です。
PuTTY をセットアップしても pageant が同梱されているようです*2。
インストール
前述のとおり pageant.exe ファイルを置いているフォルダがインストール先フォルダです。移動したい場合は、エクスプローラーを起動して pageant.exe を保存したフォルダを開きます。
ダウンロードした pageant.exe を、実行したいフォルダへ移動します。
本手順では C:\Users\Windows\Downloads\pageant\64bit\pageant.exe としています。
puttygen.exe での .ppk (PuTTY Private Key Files) 作成
id_rsa.ppk 形式の鍵ファイルを作成します。作成する方法は、純正の鍵生成ソフト puttygen.exe を利用する方法と、Tera Term 等で作成した id_rsa を .ppk 形式に変換する方法があります。
本手順では puttygen.exe を利用して鍵生成する方法を説明します。
puttygen.exe のダウンロード
前述した URL https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html の「Alternative binary files」の中から puttygen.exe を任意のフォルダへダウンロードします。puttygen.exe のインストール
pageant.exe ファイルと同じく puttygen.exe を置いているフォルダがインストール先フォルダです。移動したい場合は、エクスプローラーを起動して puttygen.ex を保存したフォルダを開きます。
ダウンロードした pageant.exe を、実行したいフォルダへ移動します。
本手順では鍵生成のためだけに利用しているので、ダウンロード場所としています。
puttygen.exe の起動
ダウンロードした puttygen.exe をダブルクリックして起動します。起動すると、以下の画面が表示されます。
puttygen.exe での鍵生成
全画面の Actions から「Generate」ボタンをクリックします。以下の画面が表示されます。
マウスの動きからデータを生成しているようなので、説明書きの通りマウスをぐりぐりぐるぐるゴリゴリ動かします。
Key passphrase 入力
マウスを動かして、必要なランダムデータが集まると以下の画面*3が表示されます。入力項目は、以下の通りです。
入力項目 | 入力内容 | 備考 |
---|---|---|
Key comment | コメントを入力する | デフォルトあり |
Key passphrase | 秘密鍵を利用する際のパスフレーズを入力する | |
Confirm Passphrase | Key passphrase の再入力を行う |
その他は ssh2 を使う限り、デフォルトで問題ありません。
生成した鍵の保存
マウスを動かして生成した鍵を、それぞれ保存します。公開鍵
「Actions」の「Save public key」ボタンをクリックします。任意のフォルダへ保存してください。
本手順では C:\Users\Windows\Downloads\pageant\key\id_rsa_ppk.pub としています。
秘密鍵
「Actions」の「Save private key」ボタンをクリックします。任意のフォルダへ保存してください。
本手順では C:\Users\Windows\Downloads\pageant\key\id_rsa.ppk としています。
なお、自身が利用する秘密鍵は、他人の手に渡った時点で危険です。
適切に管理する必要があります。
秘密鍵 (pageant への登録)
pageant.exe を起動します。ダブルクリックでの起動 (手動)
pageant.exe を置いたフォルダを開いてください。手順通りにダウンロードしたのであれば、C:\Users\Windows\Downloads\pageant\64bit\ にあるはずです。
pageant.exe をダブルクリック等で起動すると、以下の画面が表示されます。
上記画面で「Add Key」をクリックすると、秘密鍵を選択するダイアログボックスが表示されます。
秘密鍵 C:\Users\Windows\Downloads\pageant\key\id_rsa.ppk を入力して、「開く(O)」をクリックしてください。
以下のパスフレーズ入力画面が表示されます。
秘密鍵作成時に入力したパスフレーズを、ここで入力してください。
ちなみに、パスフレーズを入力していなかった場合は、入力画面は表示されません。
正しくパスフレーズを入力し終えたら「OK」ボタンをクリックします。
元の画面に、登録した秘密鍵が表示されることを確認して Close ボタンをクリックします。
pageant.exe は終了せず、タスクトレイに常駐します。
なお、タスクトレイに常駐している pageant.exe を終了させると pageant.exe が利用できなくなります。
コマンドラインでの起動
ここでは、上述したダブルクリックではなく、コマンドでの pageant.exe 起動を記載します。Win キーを押して、cmd と入力するとコマンドプロンプトを起動できます。
コマンドプロンプトへ以下のように入力し pageant.exe を起動します。
"C:\Users\Windows\Downloads\pageant\64bit\pageant.exe" "C:\Users\Windows\Downloads\pageant\key\id_rsa.ppk"
起動後、指定した秘密鍵にパスフレーズが必要な場合は、入力ダイアログボックスが表示されます。
秘密鍵作成時に入力したパスフレーズを、ここで入力してください。
なお、パス (PATH) は、自身の環境に合わせて読み替えてください。
Tera Term マクロでの起動
ここでは、Tera Term マクロでの pageant.exe 起動を記述します。以下のように Tera Term マクロで実行可能です。
想定ファイル名: pageant.ttl
・pageant.exe 起動サンプル
; pageant starter basedir_p = "C:\Users\Windows\Downloads\pageant\64bit" basedir_r = "C:\Users\Windows\Downloads\pageant\key" pageant = "pageant.exe" rsappk = "id_rsa.ppk" makepath pageant_path basedir_p pageant makepath rsappk_path basedir_r rsappk sprintf2 cmd '"%s" "%s"' pageant_path rsappk_path exec cmd利用する場合は、環境に合わせて修正してください。
マクロでも、起動時に指定した秘密鍵でパスフレーズが必要な場合は、入力ダイアログボックスが表示されます。
秘密鍵作成時に入力したパスフレーズを入力してください。
公開鍵 (OpenSSH サーバへの登録)
ファイルのアップロード
本手順では対象サーバへコマンドによる処理を行うため、通常の手順でTera Term でログインします。ログイン後、作成した公開鍵を Tera Term 画面にドラッグ&ドロップ → SCP でログインユーザのホームディレクトリにアップロードします。
ドラッグ&ドロップした際に表示される画面で、このまま OK ボタンをクリックすると、ホームディレクトリにファイルが SCP されます。
公開鍵の登録
アップロードした鍵は ~/.ssh/authorized_keys に追記 (ない場合は作成) する必要があります。puttygen.exe で作成した公開鍵と、Tera Term で作成した公開鍵では、微妙に登録方法が異なります。
puttygen.exe を利用した場合
アップロードした公開鍵を ssh-keygen コマンドで変換して .ssh/authorized_keys に登録します。$ cd $ [ -d .ssh ] || mkdir .ssh $ chmod 700 .ssh $ ssh-keygen -i -f id_rsa_ppk.pub >> .ssh/authorized_keys $ chmod 600 .ssh/authorized_keys
なお、登録した鍵の最後 (==の後) に、どの秘密鍵とペアなのかコメントを入れておくと、後で公開鍵を削除したい場合に悩まずに済みます。
$ vi .ssh/authorized_keys ( Shift + A → Space → コメント記入 ) Esc → :x
また、登録を終えた公開鍵は、不要なので消しておきます。
$ rm id_rsa_ppk.pub
接続
Tera Term
Tera Term 起動
Tera Term を起動して表示される「新しい接続」で、アクセスしたいホスト (公開鍵を登録したホスト) を入力して「OK」ボタンをクリックします。ユーザ名 & 秘密鍵利用
ユーザ名を入力します。そのまま同じ画面で Authentication methods から「Pageantを使う」を選択します。
上記を終えて「OK」ボタンをクリックします。
これでタスクトレイに常駐している pageant.exe を利用してログインできます。
もう一度書きます。
- ユーザ名入力
- Authentication methods から「Pageantを使う」を選択
- 「OK」ボタンをクリック
ログインできない場合は、pageant.exe がタスクトレイに常駐していることを確認してみてください。
Tera Term コマンドライン
毎回入力するよりコマンドラインで実行したい、という場合のログイン方法です。コマンドプロンプトからログインするには、以下のパラメータを指定します。
> ttermpro.exe example.jp:22 /ssh2 /auth=pageant /user=username各パラメータは、適切に読み替えてください。
Tera Term マクロ
次の、シンプルなマクロでログインすることが可能です。hostname = 'example.jp' portnumb = 22 username = 'username' sprintf2 msg "%s:%d /ssh2 /auth=pageant /user=%s" hostname portnumb username connect msgpageant.exe が起動している限り、ログイン毎のパスフレーズ入力は不要です。
なお pageant.exe をマクロで起動してそのままログインするためには pageante.exe 起動後のパスフレーズ入力と同期する必要があるため、技術的に難しい状況でした。
もちろん、ダイアログボックス (yesnobox) を表示させておいて、パスフレーズ入力したら OK ボタンをクリックするとか、パスフレーズ不要の秘密鍵とペアとなる公開鍵を利用するとかであればすんなり通ったのですが、ちょっとスマートとは言い難いため公開を差し控えます。
検証環境
アクセス元
BTO PC - Windows 10 Pro (バージョン 1903 OS ビルド 18362.239)Tera Term バージョン 4.103