Tera Term のマクロを、1本にまとめる
接続先が増えるたびに .ttl が増えていく運用を、そのままにしていませんか。
TTP は接続先ごとにマクロを生成しません。同梱の connect.ttl 1本に接続情報を渡して起動します。
接続先ごとの .ttl が抱える問題
Tera Term のマクロ入門記事は、ほぼすべて「接続先ごとに .ttl を1枚作る」形で書かれています。手元で試す分には分かりやすいのですが、運用に乗せると次の4つが順番に現れます。
- ファイルが増える — 接続先が20あれば
.ttlが20枚。どれが現役で、どれが古いのか分からなくなります。 - 変更が全ファイルに散る — 接続方式や待ちプロンプトを変えるたびに、全部を直して回ることになります。
- 書ける人しか触れない — 新しい接続先を足すのに、マクロを書ける人へ依頼する必要があります。異動や退職で、誰も触れなくなります。
- 秘密がファイルに残る — パスワードをマクロに直接書く例が大半で、共有フォルダに認証情報が置かれることになります(別記事で詳しく扱っています)。
TTP の方式 — connect.ttl 1本 + 環境変数
TTP が同梱しているマクロは1本だけです。接続先の情報は、マクロを起動するときに環境変数として渡します。
; connect.ttl (全接続先で共通)
getenv 'TT_TTL_HOST' myhost
getenv 'TT_TTL_PORT' myport
getenv 'TT_TTL_AUTH' myauth
getenv 'TT_TTL_USER' myuser
getenv 'TT_TTL_PASSWD' mypasswd
getenv 'TT_TTL_LOGPATH' mylogpath
myconnectparam = ''
strconcat myconnectparam myhost
strconcat myconnectparam ':'
strconcat myconnectparam myport
strconcat myconnectparam ' /ssh /2'
strconcat myconnectparam ' /auth='
strconcat myconnectparam myauth
strconcat myconnectparam ' /user='
strconcat myconnectparam myuser
strconcat myconnectparam ' /passwd='
strconcat myconnectparam mypasswd
connect myconnectparam
strlen mylogpath
if result > 0 then
logopen mylogpath 0 0
endif
接続先が何台に増えても、この1本を書き換える必要はありません。接続先の追加・変更は、すべて GUI の一覧側で完結します。
渡している環境変数
| 変数 | 内容 |
|---|---|
TT_TTL_HOST | ホスト名または IP アドレス |
TT_TTL_PORT | TCP ポート(既定 22) |
TT_TTL_AUTH | password または publickey |
TT_TTL_USER | ログインユーザ名 |
TT_TTL_PASSWD | パスワード(実行時のみ。ファイルには残りません) |
TT_TTL_PRIVATEKEY | 鍵認証のときの秘密鍵パス |
TT_TTL_LOGPATH | 自動生成されたログファイルのフルパス |
TT_TTL_PROMPT | ログイン後に待つプロンプト文字列 |
TT_TTL_SENDLN_PARAM | プロンプト検出後に送るコマンド |
接続先ごとに変えられるもの
マクロを分けなくても、接続先ごとの差異は設定側で吸収できます。
ログイン後の自動操作
「プロンプト」と「送信コマンド」を接続先ごとに設定すると、ログイン後に wait → sendln を1回だけ実行します。プロンプトを空にすれば、ログイン後の自動操作は行いません。
たとえばプロンプトに $、送信コマンドに uptime を入れておけば、接続直後に状態を確認した状態で画面が開きます。
踏み台を経由する多段接続
「踏み台にログイン → その上で対象ホストへ」という2段の接続も、接続先ごとの設定だけで表現できます。
手順と設定のコツ、現時点の制限は 踏み台経由の自動ログイン にまとめています。
| 設定 | 役割 |
|---|---|
| 踏み台ログイン後のプロンプト | 踏み台でこの文字列を待つ |
| 踏み台で実行するコマンド | ssh user@target など |
| 対象のパスワードプロンプト | password: など |
| 対象のパスワード | 暗号化して保存 |
| 対象ログイン後のプロンプト | 最終的にこの文字列を待つ |
| 対象で実行するコマンド | ログイン後に送るコマンド |
踏み台を使う設定では、接続タイムアウトが自動的に延長されます(通常5秒 → 踏み台時15秒)。
マクロを書けない人でも運用できる状態にする
TTP の中心は「接続先一覧」の画面です。接続先の追加・編集・複製・削除・並べ替えはすべて GUI で完結し、マクロ言語に触れる場面がありません。
- 一覧は名前・ホスト・ポート・認証方式・ユーザで表示され、列クリックで並べ替えできます
- 接続先は選んでダブルクリック(または Enter)で接続します
- 設定と暗号化データは ttp フォルダ内の
ttp_dataにまとまります - ttpmacro.exe は Tera Term 4 / 5 を自動検出します
「マクロを書ける人が1人しかいない」状態を、「一覧に登録できる人なら誰でも接続できる」状態に置き換えるのが、この構成の狙いです。
現時点の制限。 TTP は同梱の connect.ttl を起動する方式です。任意の自作 .ttl を指定して実行する機能はありません。ログイン後のコマンドや踏み台の手順で表現できない処理が必要な場合は、その部分だけ別のマクロで実行してください。
次に読む
最終更新: 2026年11月14日