LogMeTTはターミナルエミュレータTeraTerm Macroのランチャーツールです。TeraTermからリモートホストへ自動ログインしたり、さまざまな処理を行わせたりすることができます。ログインの自動化ツールとしてはTeraTerm Menuがありますが、ssh2接続やスケジュール機能、自動ログ取得機能、接続ホストごとに配色設定などを設定できる等の利点があります。また、ツリー構造でホストごと、マクロごとに階層化できるためサーバ管理に向いています。カナダ在住のBoris氏により開発されています。LogMeTTはTeraTermに付属しています。
TeraTerm Macroを使いリモートホストへの自動接続を管理することができます。ホストをツリー構造で登録することができるので、ホストが多数ある場合でも効率的に管理することが可能です。また、工夫次第であらゆる作業を自動化できます。※ただし、2006/11Verssion2.8(Release6)現在、TeraTerm MenuにあるようなHotKey(キーボードショートカットによる即時起動のような機能は利用できません。
LogMeTTはTeraTermのFileメニューから呼び出すことで起動することができます。起動すると、常駐プロセスとしてタスクトレイにアイコンが表示されます。
ここからは、実際にLogMeTTを使ってリモートホストへSSH2による接続を自動化する設定を紹介します。簡単な操作でTeraTermの自動化を体験してみてください。
1. LogMeTTのタスクトレイアイコン(上記3.の図にある丸囲い)を右クリックして“Configure…”を選択する。
2. 設定ダイアログが表示される。”Settings”タブの下にある、”General”タブに “Run at log on to Windows”にチェックを入れると(下図参照)Windowsログオン時にLogMeTTが自動起動される。
3. “Settings” タブの下にある “New Connections”タブで、Log file creationが "Start logging"になっていると、メニューから起動した場合自動的にログが取得されるようになる。
(TeraTermをインストールしたディレクトリ\Logs\LogMeTTメニュー名_日付時間.logとして保存される)
4. メニューバーの“Connection”から”Add Child”を選ぶと、エントリが一つ追加される。画面左のThis computerを右クリックしても”Add Child”が選択できる。
5. “This computer”の下に”Unnamed connection #1”というアイコンが追加されるので、そのアイコンを選択し”F2”キーを押して名前をつける。
6. "Macro"タブを選び、リモートホストへログインするためのマクロを記述する。たとえば、ユーザ名を固定とし、パスワードはダイアログボックスで入力させたい場合は、次のようなマクロを書く。もちろん、パスワードをマクロ内に記述してもよいが、マクロの取り扱いには注意すること。※セキュリティに配慮したマクロ(パスワードの暗号化等)については5.セキュリティに配慮したマクロを参照
=注意=
この記述はTeraTerm Macroなのでシングルクォート’ダブルクォート” に気をつけること。下記をコピーして貼り付けると安全
username = 'nike' hostname = '192.168.1.3' ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; msg = 'Enter password for user ' strconcat msg username passwordbox msg 'Get password' msg = hostname strconcat msg ':22 /ssh /auth=password /user=' strconcat msg username strconcat msg ' /passwd=' strconcat msg inputstr connect msg
7. F9キーを押して、マクロが正常に動作するか検証する。 問題なければ、右上にあるApplyボタンを押して設定内容を保存する。
8. 登録したリモートホストはタスクトレイの右クリックメニューから選択することができる。
9. “Popup”タブにメッセージを記述しておくと実行時に、
下記のポップアップメッセージが表示される。
重要なホストに接続する際や、root等の特権アクセスのマクロにPopupで注意を促す際等に利用する。ポップアップメッセージではOKを押すとマクロが実行され、Cancelを押すとMacroは実行されない。
10.” Colors”タブでは、接続メニュー毎にTeraTermの配色を変更できる。 Popup同様、重要なホストに接続する際等のメニュー配色を変えるなどに利用する。ユーザ毎、ホスト毎に配色を変更する事で誤操作の予防にもなる。
11. Scheduleタブでは、設定したマクロを自動実行させることができる。 上手くマクロを組めば、下記のような事が可能になる。
※注意:メニューの階層は親から順番に実行されてしまうため、子をスケジュールに入れておくとその直系親ツリーがすべて実行される。単一タスクとして行いたい場合は独立させること(This computer直下)。また、ホストとLogMeTTを実行するPCの時刻差異に注意すること。
Scheduleを実行する場合は、後述の自動ログをONにすることを推奨する。(後で何が起きたかわからなくなってしまわないように)
この項目は、TeraTerm Macroに関するTopicです。
”4. 設定”で紹介したマクロではマクロ内にユーザ名が記述されており、セキュリティ上あまり良くないと思われます。パスワードは毎回入力するタイプです。これを、ユーザ名、パスワードを暗号化したファイルに保存する方式を紹介します。
※ユーザ名を scott ホスト名を remote.host パスワードファイルの保存先を C:\mydata\filename.dat とした場合のマクロ例です。
; setting hostname = 'remote.host' username = 'scott' getpassword 'C:\mydata\filename.dat' 'usrpass' inputstr ; connection & login msg = hostname strconcat msg ':22 /ssh /2 /auth=password /user=' strconcat msg usernam strconcat msg ' /passwd=' strconcat msg inputstr connect msg
※getpassword 'filepath\filename' '識別子' $格納変数
同一格納ファイルに複数の識別子でパスワードを暗号化保存できます。
このマクロは、最初の一度だけパスワードを聞かれますが、その後はC:\mydata\filename.datに保存された暗号化パスワードが利用されるためLogMeTTメニューからの選択だけで自動ログインが可能になります。
ホスト名を remote.host ユーザIDとパスワードファイルの保存先を C:\mydata\filename.dat とした場合のマクロ例です。
; setting hostname = 'remote.host' getpassword 'C:\mydata\filename.dat' 'usrid' username getpassword 'C:\mydata\filename.dat' 'usrpass' inputstr ; connection & login msg = hostname strconcat msg ':22 /ssh /2 /auth=password /user=' strconcat msg username strconcat msg ' /passwd=' strconcat msg inputstr connect msg
※getpassword 'filepath\filename' '識別子' $格納変数
このマクロではユーザIDも識別子usridとして格納しています。最初のログイン時にはユーザIDとパスワードの両方を入力しなければなりませんが、2回目以降は同様にLogMeTTメニューからの選択だけで自動ログインが可能になります。同じように、getpasswordを利用することでホスト名を暗号化してしまうことも可能ですが、TeraTermのヒストリに過去接続したホストが残る場合もありますのでセキュリティを考慮する場合は様々な注意が必要です。ホスト名、そのホストに登録されているID、パスワード等のすべてを暗号化して隠すことができるマクロです。
telnet(ポート23)を利用して接続する場合は接続マクロが一部違いますので注意してください。
これは、telnetが接続セッション確立後に認証を行うためです。
; setting hostname = 'remote.host' getpassword 'C:\mydata\filename.dat' 'usrid' username getpassword 'C:\mydata\filename.dat' 'usrpass' inputstr ;; login session ※ UsernamePrompt = 'Please login:' PasswordPrompt = 'Please Enter password:' ; connection msg = hostname strconcat msg ':23' strconcat msg ' /nossh' connect msg ; login wait UsernamePrompt sendln username wait PasswordPrompt sendln inputstr
※telnetではログインするホストの応答内容にあわせて記述を変更する必要があります。(ログインプロンプト)
保存されたパスワードファイルを安全に保管することで、たとえばrootユーザで接続する場合はそのファイルが必要になるような運用を行うことができます。管理者は最初に一度だけ複雑で長いパスワードを設定し、ファイル保存後は破棄してしまってかまわないのです。
上記のマクロ例のようにローカル保存する場合は、セキュリティの観点からスタートアップにパスワード格納ファイルの削除バッチファイルを入れておくと、ログイン後最初の一度だけパスワード認証が必要になり、セキュリティと利便性の両立などを図ることができます。
完全なセキュリティはありませんが、機密性を強化するのに役立ててください。
TeraTermに付属しているLogMeTTは基本的にリリース時点での最新版を同梱するようにしていますが、別プロダクトですのでリリースによってはLogMeTTの最新版が先に提供されることもあります。最新版のダウンロードはこちら
また、LogMeTTのメニュー”Help“から”Check for updates”を選択しても最新版を入手可能です。
TBD