放課後プログラミング

調べたことや考えたことなどを忘れないために書きます。

Tera Termマクロで自動ログイン

sshクライアントTera Termによる自動ログインマクロが便利だったのでメモっておきます。
マクロはTTL(Tera Term Language)で記述する。

Telnet

;
; TELNET LOGIN
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

HOSTADDR = "" ; hostname or ipAddr
USERNAME = ""
PASSFILE = ""

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

PASSKEY = USERNAME
strconcat PASSKEY "@"
strconcat PASSKEY HOSTADDR
getpassword PASSFILE PASSKEY PASSWORD

COMMAND = HOSTADDR
strconcat COMMAND ":23 /nossh /T=1"
connect COMMAND

wait "Login:"
sendln USERNAME
wait "Password:"
sendln PASSWORD

SSH

;
; SSH LOGIN
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

HOSTADDR = "" ; hostname or ipAddr
USERNAME = ""
PASSFILE = ""

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

PASSKEY = USERNAME
strconcat PASSKEY "@"
strconcat PASSKEY HOSTADDR
getpassword PASSFILE PASSKEY PASSWORD

COMMAND = HOSTADDR
strconcat COMMAND ":22 /ssh /user="
strconcat COMMAND USERNAME
strconcat COMMAND " /passwd="
strconcat COMMAND PASSWORD
connect COMMAND

ログイン後の作業の自動化は基本的にシェルスクリプト等で行った方が資料も多いので正しい選択だと思う。

Tera Termマクロを使って便利そうなシチュエーションは
1)自動ログイン
2)サーバ毎に適用するTera Termの設定を変えたい時(ウィンドウサイズやフォントや文字コード等)
3)tmuxscreenの入っていないサーバで複数の端末を使う作業のために、自動で対象サーバへログインした端末を指定個数起動

くらい?思いついたら追記します。

TTLコマンドリファレンス
http://ttssh2.sourceforge.jp/manual/ja/macro/command/index.html