Tera Term マクロについて

サーバにログインするときに普段からよく使っている Tera Term ですが。

サーバの台数が多いと 各サーバの IPログイン ID / パスワード を繰り返して入力する必要があるため、少し非効率的です。

そのときに役立つのが、Tera Term のログインマクロです。

今回は、異なる ID とパスワードを使って、複数のサーバへ自動ログインする方法についてご紹介します。

Tera Term 自動ログインマクロ作成

異なる ID とパスワードで全自動ログイン

マクロの書き方は、色々ありますが、その中でもよく使われると思われるのは、以下の 2パターンです。

  • 共通 ID / PW : パスワードはマクロに記載せず、最初の一回だけ手入力
  • 異る ID / PW : パスワードをマクロに記載して、全自動ログイン

この例では、複数サーバの 異る ID / PW : パスワード情報をマクロに記載して、全自動ログイン するようにします。

  • 全てのサーバには、異なる ID と PW が設定されている前提
  • パスワードもマクロに記載し、全自動ログイン

ID / PW について

ちなみに、ID / PW 情報を各サーバごとにマクロに記載するので、必ずしも異なる ID / PW でなくても良いです。 同じ ID / PW が混ざっていても構わいません。

ログインマクロ作成

Tera Term のマクロファイルの拡張子は、ttl です。

この例では、以下のサーバに対して、ID / PW 情報をマクロを記載し、全自動でログインできるようにします。

サーバの IP ID PW
192.168.0.11 server-01-hoge server-01-hoge123
192.168.0.12 server-02-hoge server-02-hoge123
192.168.0.13 server-03-hoge server-03-hoge123

パスワードもマクロに記載します。

teraterm_login_macro.ttlRaw Code(S)Raw Code(T)
;;===========================================================
;; 個別 ID/PW を用いたログインマクロ
;;===========================================================
;; ① に該当サーバの IP、SSH Port、ID/PW を設定
;; ② ~ ⑤ は、特に何も設定しなくて良い
;; ① ~ ⑤ をサーバの台数分コピペして使い回す
;; ⑥ マクロ終了
;;===========================================================

;; ① コマンド組立て(サーバの IP と SSH ポート番号(22) を設定)
COMMAND = '192.168.0.11'
strconcat COMMAND ':22 /ssh /2 /auth=password'
strconcat COMMAND ' /user=server-01-hoge'
strconcat COMMAND ' /passwd=server-01-hoge123'

;; ② 接続 
connect COMMAND

;; ③ 接続判定1(接続出来ない場合は、メッセージを表示し、マクロ終了)
if result <> 2 then 
    messagebox 'teraterm macro could not connect to this Server.' 'Connection Error'
    end
endif

;; ④ 接続判定2(60秒以内にプロンプトが表示されない場合は、終了)
timeout = 60
wait '$' '#'
if result=0 then
    end
endif

;; ⑤ ホスト名表示
sendln 'hostname'
wait '$' '#'
unlink


;; ① コマンド組立て(サーバの IP と SSH ポート番号(22) を設定)
COMMAND = '192.168.0.12'
strconcat COMMAND ':22 /ssh /2 /auth=password'
strconcat COMMAND ' /user=server-02-hoge'
strconcat COMMAND ' /passwd=server-02-hoge123'

;; ② 接続
connect COMMAND

;; ③ 接続判定1(接続出来ない場合は、メッセージを表示し、マクロ終了)
if result <> 2 then
    messagebox 'teraterm macro could not connect to this Server.' 'Connection Error'
    end
endif

;; ④ 接続判定2(60秒以内にプロンプトが表示されない場合は、終了)
timeout = 60
wait '$' '#'
if result=0 then
    end
endif

;; ⑤ ホスト名表示 
sendln 'hostname' 
wait '$' '#'
unlink


;; ① コマンド組立て(サーバの IP と SSH ポート番号(22) を設定)
COMMAND = '192.168.0.13'
strconcat COMMAND ':22 /ssh /2 /auth=password'
strconcat COMMAND ' /user=server-03-hoge'
strconcat COMMAND ' /passwd=server-03-hoge123'

;; ② 接続
connect COMMAND

;; ③ 接続判定1(接続出来ない場合は、メッセージを表示し、マクロ終了)
if result <> 2 then
    messagebox 'teraterm macro could not connect to this Server.' 'Connection Error'
    end
endif

;; ④ 接続判定2(60秒以内にプロンプトが表示されない場合は、終了)
timeout = 60
wait '$' '#'
if result=0 then
    end
endif

;; ⑤ ホスト名表示 
sendln 'hostname' 
wait '$' '#'
unlink


;; ⑥ マクロ終了 
end

timeout の設定値について

④ の timeout 値 は、以下のマクロでは、60秒 を設定しています。

この設定のままでよいと思いますが、環境に合わせて調整してください。

あまりにも短すぎるとログインできなくなるので、ご参考までに。

マクロを使って実際にログインして見る

では、上記のマクロを使って、実際にログインして見ます。

Step 1. Tera Term 実行

まずは、Tera Term を実行します。

ログインダイアログ が表示されますが、マクロを使ってログインするので、ESC または、キャンセルをクリックします。

Tera Term 実行

Step 2. マクロを開く

コントロール > マクロをクリックします。

コントロール - マクロ

作成したマクロファイルを選択し、開くをクリックします。

マクロを開く

Step 3. ログイン完了待ち

そうする各サーバへ自動的にログインが行われるので、ログインが完了するまで待ちます。

複数サーバへ自動ログインしているので、ログインに成功した後、hostname を実行するようにしています。

ホスト名が間違いないことを確認してから作業してください。

ログイン後に hotname 自動実行

終わりに

全自動で複数サーバへログインできるので、かなり便利ですが、全てのパスワード情報をマクロに記載しているので、セキュリティ的には良くないです。

作成したマクロファイルは、大事に管理する必要があります。

ちなみに、; は、コメントアウト です。

上記の内容をファイルに保存し、必要な箇所だけ書き換えて使ってください。

以上、Tera Term 自動ログインマクロ (異る ID / PW) でした。