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 情報をマクロを記載し、全自動でログインできるようにします。

サーバの IPIDPW
192.168.0.11server-01-hogeserver-01-hoge123
192.168.0.12server-02-hogeserver-02-hoge123
192.168.0.13server-03-hogeserver-03-hoge123

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

teraterm_login_macro.ttl
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
;;===========================================================
;; 個別 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) でした。