Tera Term(テラターム)のマクロ機能を利用し、SSHプロトコル(パスワード認証) でサーバ等に自動ログイン+アルファ(ちょっとだけセキュリティを考慮)のテラタームマクロをご紹介します。
これまで紹介してきたマクロでは、TTLファイルに直接パスワードを記述していました。(これセキュリティ管理的にはマズイですよね!)
そこでここでは、接続先ホスト情報とユーザ名はTTLファイルに直接記述し、パスワードはプロンプトから入力するタイプのマクロを解説していきます。
パスワード入力には、TTLコマンドの「inputbox」ではなく、「passwordbox」を利用してパスワード入力を行います。
SSH自動ログインマクロ(passwordboxを使用)
;===========================================================
; Filename : ssh_connect-05.ttl
; Description : SSH Auto login
; Author : JUNZOU
; Created : 2011/04/03
; modified :
;===========================================================
;; 接続報ホスト/ユーザ名設定
HOSTADDR = '接続先IPアドレス'
USERNAME = 'ユーザ名'
;===========================================================
;; ①接続先ホストのパスワードを入力
MASSAGE = 'HOST : '
strconcat MASSAGE HOSTADDR
strconcat MASSAGE ' / USER NAME : '
strconcat MASSAGE USERNAME
passwordbox MASSAGE 'Please input a password.'
PASSWORD = inputstr
;; ②入力確認(パスワードが入力されていない場合マクロ終了)
strcompare PASSWORD ''
if result=0 then
messagebox 'A password is not input.' 'Input error'
end
endif
;; ③コマンド組立て
COMMAND = HOSTADDR
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 'It could not be connected.' 'Connection Error'
end
endif
;; ⑥接続判定2(10秒以内にプロンプトが表示されない場合TeraTerm終了)
timeout = 10
wait '$' '#'
if result=0 then
end
endif
;; ⑦ホスト名表示
sendln 'hostname'
wait '$' '#'
;; ⑧マクロ終了
end
マクロ内容の解説
①接続先ホストのパスワードを入力
接続先ホストのパスワードを入力のエリアでは、接続先のIPアドレス、及び接続ユーザ名を表示したメニューからパスワードを入力します。

パスワード入力には「passwordbox」コマンドを使用します。
通常入力時に使用する「inputbox」を使用すると、入力した文字がそのまま表示されますが、「passwordbox」を使用すると入力した文字が「********」で表示されます。 (一種のセキュリティ対策ですね!)

⇒ 「passwordbox」コマンドの詳細はこちらを参照ください
②入力確認(パスワードが入力されていない場合マクロ終了)
入力確認のエリアでは、パスワードが入力された事を確認しています。何も入力しないで「OK」を押した場合にマクロを終了させています。
③コマンド組立て ④接続
⑤接続判定1(接続出来ない場合はメッセージを表示しマクロ終了)
接続判定1エリアでは、「connect」のリンクと接続の状態を確認しています。
「connect」すると、システム変数「result」に以下の値が格納されます。
値 状態
0 Tera Term とリンクされていない。
1 ホストへの接続はされていないが、Tera Term へのリンクはされている。
2 リンクおよび接続両方ともされている。 ←正常に接続
値「2」がホストに正常に接続された状態なので「2」以外の場合は、異常と判断してマクロを終了させています。⇒ 「connect」コマンドの詳細はこちら
⑥接続判定2(10秒以内にプロンプトが表示されないとTeraTem終了)
接続判定2エリアでは、接続後(ログインは正常に終了)にプロンプトが表示されない場合(システムの重い時等)に10秒待ってもプロンプトが表示されない場合にマクロ&TeraTermを終了させています。
これは、後々紹介するマクロで必要になってくる機能です。
⑦ホスト名表示
「sendln」コマンドを使用して、コンソールで「hostname」のコマンドを実行します。
⑧マクロ終了
自動ログインが完了するとマクロ機能を終了します。マクロを終了してもセッションは維持され、通常のコンソール操作が継続して行えます。
おわりに
今回ご紹介したテラタームマクロは、管理対象サーバの接続するユーザ名は同じだが、パスワードがサーバによって違う場合に有効なマクロになります。まあ何かのお役にでも立てれば幸いです。








