takashi kono's blog

コーヒーとキーボードと共に何かを記録していくブログ

TeraTerm マクロで自動で SSH してくれるようにしてみた備忘録

TeraTerm マクロで自動で SSH してくれるようにしてみた備忘録

今回は、TeraTerm のマクロ機能を使って自動で SSH 接続を行う方法について紹介します。
TeraTerm のバージョン 4 系、5 系のどちらでも動作するはずです。

概要

今回の仕組みでは、以下の2つのファイルを作成します。

  • env.ttl
    共通の環境設定を記述したファイルです。鍵ファイルのパスや認証方法など、共通するパラメータをここで設定します。

  • マクロ本体(例: auto_ssh.ttl
    接続先の情報を設定し、env.ttl を INCLUDE して利用するマクロです。

env.ttl

まず、以下のように env.ttl を作成します。
このファイルには、鍵ファイルのフルパス、SSH バージョン、認証方法などの共通設定を記述しています。

; 共通環境設定ファイル

; 鍵ファイルのフルパスを設定(必要に応じて変更)
; 例: KEYFILE = 'C:\keys\id_rsa.ppk'
KEYFILE = "\path\to\private-key"

; SSHバージョンを設定
SSH_VERSION = 2

; 認証方法を設定('key' または 'password')
AUTH_METHOD = 'key'

; ユーザー名(共通部分があればここに設定)
; USERNAME = 'your_username'  ; 必要に応じてコメント解除して設定

マクロ本体

次に、同一ディレクトリに以下のようなマクロ(例: auto_ssh.ttl )を作成します。 ここでは、接続先のホスト、ポート、ユーザー名を設定し、 env.ttl を読み込むことで共通設定を反映させています。

;=====================================================================
; 接続情報
HOST = 'IP_or_HOSTNAME'
PORT = 'PORT_NUMBER'
USERNAME = 'USERNAME'
ENV_FILE = "env.ttl"
;=====================================================================

INCLUDE ENV_FILE

cmd = HOST
strconcat cmd ':'      ; HOST: を作成
strconcat cmd PORT     ; HOST:PORT
strconcat cmd ' /ssh /2 /auth=publickey /user='
strconcat cmd USERNAME
strconcat cmd ' /keyfile='
strconcat cmd KEYFILE

connect cmd

end

マクロのポイント

  • INCLUDE 文
    マクロの先頭で env.ttl を INCLUDE することで、共通設定を読み込みます。 これにより、複数の接続先で共通の設定を一元管理することが可能です。

  • 接続コマンドの生成
    strconcat を利用して、SSH 接続用のコマンド文字列を順次組み立てています。 接続先のホスト、ポート、ユーザー名、鍵ファイルのパスが一つの文字列にまとめられ、 connect コマンドで接続が実行されます。

  • バージョン対応
    TeraTerm バージョン 4 系、5 系どちらでも動作する仕様となっていますので、環境に合わせてご利用ください。

まとめ

今回紹介した方法を利用すれば、複数の接続先で共通設定を持たせつつ、手軽に SSH 接続を自動化することが可能です。

TeraTerm のマクロ機能はシンプルですが、柔軟な設定ができるため、さまざまな環境で活用できます。

また、マクロが増えたうえで、キーが変わっても env.ttl を書き換えるだけで引き続き使えるところも魅力です。

以上、TeraTerm マクロによる自動 SSH 接続の備忘録でした。