Tera Term MACROを利用してTera Term を制御し、オートログインを実現する方法[Tera Term]

実行環境
Tera Term Version 4.106
CentOS release 6.7

Tera Term MACROを利用してTera Term を制御することで、オートログインを実現することができます。

以下のスクリプトでは、オートログインに加えてログイン後に任意のコマンドを実行させることを想定しています。

; ip、ユーザー名、パスワードを定義する。 -------------------------------
myserver = 'ip'
username = 'ユーザー名'
password = 'パスワード'

; 指定したサーバーに接続する。 -----------------------------------------
command = myserver
strconcat command ' /ssh /2 /auth=password /user='
strconcat command username
strconcat command ' /passwd='
strconcat command password

; myserverに接続する。 
connect command

; ログファイル名、保存先を定義する。 -----------------------------------
; MACRO の現在のディレクトリを取得する。 
getdir dir

; Tera Term の現在のディレクトリを変更する。 
changedir dir

; 日時を取得する。
gettime timestr "%Y%m%d-%H%M%S"

; ログファイル名に接続先ipと日時を入れる。
sprintf2 filename 'teraterm_%s_%s.log' myserver timestr

; Tera Term のログ取得を追記モードで開始する。 
logopen filename 0 1

; ログイン後に実行したいコマンドを記載する。 ---------------------------
; サブルーチンをコールする。 
call sub

; \[\e[1;32m\] 太字;文字色緑
; \[\e[1;36m\] 太字;文字色水
; \[\e[0;39m\] 装飾なし;文字色デフォルト
sendln 'export PS1="[\t][\[\e[1;32m\]\u\[\e[0;39m\]@\[\e[1;36m\]\h\[\e[0;39m\]]# "'
call sub

sendln 'id; uname -n'
call sub

sendln 'date'
call sub

; マクロの実行を終了する。 
end

; サブルーチンの始まり。 -----------------------------------------------
:sub
    ; 200ミリ秒休止する。
    mpause 200

    ; 3回繰り返す。
    for i 1 3
        ; 文字列 "root@"を待つ。
	wait 'root@'

        ; 改行を送信する。
        sendln
    next

; メインルーチンへもどる。
return

ログの可読性を考慮して、コマンドを実行する度に3行の改行を挿入するようにしました。

以上、Tera Term MACROを利用してTera Term を制御し、オートログインを実現する方法でした。

この記事が気に入ったらサポートをしてみませんか?