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

共通 ID + 共通パスワード : パスワードは最初の一回だけ手入力

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

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

この例では、パスワードをマクロに保存するのは、セキュリティ上、あまり良くないので、共通 ID / PW : パスワード情報をマクロに記載せず、最初の一回だけ手入力 するようにします。

  • 全てのサーバには、同じ ID と PW が設定されている前提
  • パスワードは、マクロに書くのではなく、最初の一回だけ手入力し、後は自動ログイン

ログインマクロ作成

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

この例では、マクロを使ってログインする対象サーバを以下とし、各サーバには、hogehoge というログインユーザ ID に同じパスワードが設定されているとします。

サーバの IP ID PW
192.168.0.11 hogehoge hogehoge123
192.168.0.12 hogehoge hogehoge123
192.168.0.13 hogehoge hogehoge123

以下のマクロファイルで設定が必要なところは、以下の通りです。

パスワードは、マクロに書きません。

  • ① の USERNAME に共通ログイン ID 設定(HOSTADDR に IP アドレス設定は、不要)
  • ④ に該当サーバの接続先 IP アドレスと SSH ポート番号を設定
  • ⑦ の timeout 値
teraterm_login_macro.ttlRaw Code(S)Raw Code(T)
;;===============================================================
;; 同じ ID/PW を用いたログインマクロ
;;===============================================================
;; ① USERNAME に共通ログイン ID 設定
;; ② 接続先ホストの共通パスワードを入力(何もしなくてよい)
;; ③ 入力確認(何もしなくてよい)
;; ④ に該当サーバの接続 IP アドレスと SSH ポート番号を設定
;; ④ ~ ⑧ をサーバの台数分コピペして使い回す
;; ⑨ マクロ終了(何もしなくてよい)
;;===============================================================
;; ① USERNAME に共通ログイン ID 設定
HOSTADDR = 'Tera Term Login Macro'
USERNAME = 'hogehoge'


;; ② 接続先ホストの共通パスワードを入力(何もしなくてよい)
MASSAGE = 'HOST : '
strconcat MASSAGE HOSTADDR
strconcat MASSAGE ' / USER NAME : '
strconcat MASSAGE USERNAME
passwordbox MASSAGE 'Please enter your password.'
PASSWORD = inputstr


;; ③ 入力確認(何もしなくてよい)
strcompare PASSWORD ''
if result=0 then
    messagebox 'Please enter your password.' 'Password error'
    end 
endif
unlink


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

;; ⑤ 接続 
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 /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD

;; ⑤ 接続 
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 /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD

;; ⑤ 接続 
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. パスワード入力

全サーバの共通パスワードを入力し、Enter または、OK をクリックします。

このパスワード入力は、最初の 1回だけでよいです。

パスワード入力

そうすると以下のように、各サーバごとに、自動的にログインが行われます。

自動的にログインダイアログ

無事に自動ログインできました。

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

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

ログイン後に hotname 自動実行

終わりに

パスワード情報をマクロに記載しないやり方なので、より安全に複数サーバへログイン出来ます。

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

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

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