2016年3月7日月曜日

sshで接続@Agent認証その1

前回で、Ubuntuに対してteratermを使って、パスワード認証と公開鍵認証を用いたsshログインが出来るところまで試した。
ただ、公開鍵認証を用いても、秘密鍵にパスフレーズを付与しているので、毎回ログインのたびにパスフレーズを入力しなければならず、結構手間だ。
今回は、agentを用いて、パスフレーズを一回だけ入力すれば済むような方向で進めていく。
 
agentって?
クライアント側で秘密鍵を保持しておいてくれて、クライアントソフト(teraterm等)と連携して鍵認証を代行してくれるプログラム。
通常の鍵認証だとこんな感じだけど…


エージェントを使うと、このような感じになる。


teratermで、同じサーバに複数のログインセッションを作るなんていうことはよくある話だが、その都度秘密鍵を読み込んでいたら、毎回パスフレーズを入力しなければならない。結構な手間だ。
そこで、事前にSSH Agentソフトウェアを立ち上げ、そちらで秘密鍵を読み込んでおく。(ここで1回、パスフレーズを入力することになる。)
teraterm等は秘密鍵を読み込まずに、秘密鍵が必要な時にSSH Agentに処理を任せる、というような形にすることで、最初の一回(SSH Agentで秘密鍵を読み込む時)、パスフレーズを入力するだけで済むようになる。
 
Ubuntuをクライアントにしている場合は、OpenSSHに含まれているssh-agentというツールで実現が可能だが、クライアントがWindowsの場合、OS標準にはこのようなツールは存在しない。(そもそも、sshクライアントすら存在しないわけだが…)
agent機能は、フリーソフトで幾つか実現されているようなのだが、今回は PuTTY というフリーソフトに含まれている Pagent というツールを使うことにする。
これ、すごく有名らしく、調べればすぐに情報が出てくると思う。
 
PuTTY は簡単にダウンロード、インストール出来るので、先にインストールしておいて欲しい。
 
で、以前 teraterm で作成した秘密鍵を、PuTTY の Pagent に読み込ませればOKなのだが…、実は Pagent は、teraterm で作成した秘密鍵の書式に対応していない。
そのため、書式を変換する必要がある。
変換はそんなに難しいことではない。PuTTYに変換ツールも含まれているからだ。
PuTTYのインストールが完了していたら、PuTTYgenというツールがインストールされているはずだ。スタートメニューから探して、実行してみて欲しい。
以下の様な味気ない画面が出てくるはずだ。


メニューバーに「Conversions」というのがあるのに気付くと思う。
それらしい名前だが、そのものズバリだ。こちらを選ぶと、Import keyというメニューが出てくる。これをクリックする。


Import keyをクリックすると、お約束のファイル指定ダイアログが出てくるので、以前teratermで作成した鍵のうち、秘密鍵(.pubじゃない方)を指定しよう。
パスフレーズを聞いてくると思うので、秘密鍵に付与したパスフレーズを入力する。


パスフレーズを入力して「OK」を押したら、PuTTYgenの画面が少し派手(?)になったと思う。


あとは「Save Private key」を押して、PuTTY用の秘密鍵をローカルに保存すればいい。(拡張子は.ppkになる)
これで、Pagent用の秘密鍵が出来上がりだ。
 
次は、作成した鍵を PuTTY の Pagent に読み込ませて…なんだけど、今日はここまで。また次回。

0 件のコメント:

コメントを投稿