Tera Term(テラターム)のマクロ機能+TELNETプロトコルを利用したサーバへの自動ログインマクロをご紹介致します。
今回ご紹介するのは、以下のような特徴のマクロになります。
マクロ言語TTL(Tera Term Language)ファイルに「接続先ホスト情報」・「接続ユーザ名」・「パスワード」などの、サーバに接続するために必要な情報を全てマクロファイル内に直接記述しています。 (セキュリティ的にまずいんじゃないとかは、言いっこ無しでお願いします!)
このテラタームマクロを実行する事により、TELNETでサーバに接続する際に必要な入力情報(ユーザ名・パスワード)を全く手入力する事無く、対象サーバに自動でログインする事が出来るようになります。
管理している機器が少ない場合は、機器(ホスト)毎にマクロファイルを作成しておくと、接続する際に便利になるマクロかもしれませんね!
TELNET自動ログインマクロ
;============================================== ; Filename : telnet_connect-01.ttl ; Description : TELNET Auto login ; Author : JUNZOU ; Created : 2011/03/20 ; modified : ;============================================== ;; 接続先サーバ・ユーザ名・パスワード設定 HOSTADDR = '接続先サーバIPアドレス' USERNAME = 'ユーザ名' PASSWORD = 'パスワード' ;============================================== ;; ①コマンド組立て COMMAND = HOSTADDR strconcat COMMAND ':23 /nossh /T=1' ;; ②サーバ接続 connect COMMAND ;; ③ログイン情報応答(ユーザ名・パスワード) wait 'login:' sendln USERNAME wait 'Password:' sendln PASSWORD ;; ④マクロ終了 end
マクロ内容の解説
項番①コマンド組立て
コマンド組立てエリアでは、TELNET接続に必要な文字列を作成しています。変数「COMMAND」に「strconcat」コマンドを使用し文字を継ぎ足していく事で接続するための文字列を作成しています。
接続先ホストにIPアドレスを設定した場合は、以下のような文字列が作成される事になります。(xxxは、IPアドレス)
xxx.xxx.xxx.xxx:23 /nossh /T=1
まず「strconcat」コマンドは、文字列を継ぎ足す機能があります。
⇒ 「strconcat」コマンドの詳細はこちらを参照ください
続いての「/nossh」オプションは、通常TeraTermを使用した接続でSSHを使用している場合にTELNET接続が失敗するのを防止します。
なぜ失敗するかと言うと「TERATERM.INI」ファイルが最後に保存された時と同じ接続方法「SSH or TELNET」が使用されるためなんです。
簡単に言うと、強制的にTELNET接続を行うためのオプションになります。
項番②サーバへ接続
サーバへ接続のエリアでは、項番①で作成した変数(文字列)「COMMAND」を使用し「connect」コマンドで対象ホストへTELNET接続を行います。
項番③ログイン情報応答(ユーザ名・パスワード)
ログイン情報応答のエリアでは、接続に必要なユーザ名・パスワードを自動入力します。ログイン時に表示される「login:」プロンプトが表示されるとユーザ名を自動入力、「Password:」が表示されるとパスワードを自動で入力しログイン処理を行います。
項番④マクロ終了
自動ログインが完了するとマクロ機能を終了します。マクロ機能は停止しますが、セッションはそのまま切れず、通常のコンソール操作が可能となります。
おわりに
今回ご紹介したマクロは、全ての接続情報をマクロファイルに直接記述していました。次回ご紹介するマクロは、管理しているサーバの接続ユーザ名・パスワードが統一されている環境で便利になってくるマクロをご紹介致します。
⇒ TELNET自動ログイン(ホスト入力/ユーザ名・パスワード固定版)