晴耕雨読

working in the fields on fine days and reading books on rainy days

[Windows] TeraTermマクロでリモートログイン自動化

TeraTermマクロ(Tera Term Language: TTL)を使うことでSSHのリモートログインを自動化することができます。 以下の例は、リモートサーバにSSHで接続するときのパスワード入力を自動化する例です(ただし、パスワードは平文で保存されます)。

login.ttl

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
host = 'IPアドレス'
user = 'ユーザ名'
pass = 'パスワード'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

COMMAND = host
strconcat COMMAND ':22 /ssh /2 /auth=password /user='
strconcat COMMAND user
strconcat COMMAND ' /passwd="'
strconcat COMMAND pass
strconcat COMMAND '"'
connect COMMAND

wait '$' '#'
end

作成したマクロ login.ttl をダブルクリックして実行すると、自動でログインされます。 ダブルクリックで起動できない場合は .ttl を C:\Program Files (x86)\teraterm\ttpmacro.exe に関連付けしておくと、ダブルクリックだけでマクロを実行できるようになります。

TTLコマンドについて説明:

  • 変数名 = 値 : ユーザ変数を定義します。
  • ; : コメントアウトします。
  • strconcat 文字列変数 文字列 : 文字列変数の値の末尾に、文字列を付け足します。
  • connect '接続パラメータ' : 指定したサーバにSSHまたはTELNETで接続します。以下パラメータについての説明:
    • ホスト名:ポート番号 : 第一引数。接続先のホスト名とポート番号を指定します。
    • /ssh /2 : SSH2 で接続します。
    • /auth=password : 認証方法。パラメータは変えることができ、passwordはパスワード認証、publickeyは公開鍵認証、challengeはチャレンジレスポンス認証、pageantはPageantを使用した認証を使うことを表します。
  • wait 文字列1 [文字列2 ...] : パラメータの文字列のうち、一つがホストから送られてくるか、タイムアウトするまでマクロを停止させます。
  • end : マクロの実行そのものを終了します (exit は呼び出し元マクロファイルに戻るが、end は全ての後続のマクロ実行を終了する)

以上です。

参考