Tera Term で踏み台経由の自動ログイン

踏み台にログインして、そこから目的のホストへ。 Tera Term ではマクロを書く必要があったこの流れを、TTP は接続先ごとの設定項目で表現します。 踏み台のパスワードも対象ホストのパスワードも暗号化して保存され、マクロファイルには残りません。

よくある構成

手元の PC ── SSH ──▶ 踏み台(踏み台サーバ) ── SSH ──▶ 対象ホスト

この2段接続は、ファイアウォールの内側にある機器を触るときの標準的な形です。TTP は「手元 → 踏み台」を通常の接続設定で、「踏み台 → 対象」を詳細設定で扱います。

マクロで書くと、パスワードが2つ並ぶ

既存の解説記事で紹介されている多段接続マクロは、おおむね次の形です。

HOSTADDR = '10.0.0.10'      ; 踏み台
USERNAME = 'okamo'
PASSWORD = 'P@ssw0rd'       ; 踏み台のパスワード(平文)

TARGET_USER = 'okamo'
TARGET_PASS = 'P@ssw0rd2'   ; 対象ホストのパスワード(平文)

COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD
connect COMMAND

wait '$'
sendln 'ssh okamo@10.0.1.20'
wait 'password:'
sendln TARGET_PASS
wait '$'

1つのファイルにパスワードが2つ書かれます。これが共有フォルダに置かれると、踏み台だけでなく内側のホストの認証情報まで配られることになります。詳細はマクロにパスワードを書かない3つの方法で扱っています。

TTP の設定項目

「踏み台経由で接続する」を有効にすると、次の6項目が使えます。

接続先の詳細設定画面。「踏み台経由で接続する」にチェックが入り、プロンプト1、コマンド1、「ターゲットは鍵認証(パスワード入力なし)」のチェック、プロンプト2(PW要求)、ターゲットPW、プロンプト3、コマンド3 の入力欄が並んでいる。
詳細設定(任意)を開くと、踏み台の項目が表示されます。
踏み台の設定項目と役割
項目例役割
プロンプト1$踏み台のログイン完了を待つ文字列
コマンド1ssh -p 22 okamo@ssh-okamo.xxx踏み台で実行する、対象ホストへの接続コマンド
ターゲットは鍵認証(チェック)チェックすると、プロンプト2とターゲットPW が無効になり、パスワード送信を行いません
プロンプト2(PW要求)password:対象ホストのパスワード入力を待つ文字列
ターゲットPW(暗号化して保存)プロンプト2のあとに送るパスワード
プロンプト3$対象ホストのログイン完了を待つ文字列
コマンド3ls -l対象ホストで実行するコマンド

動作の順序

  1. 踏み台に接続

    通常の接続情報(パスワードまたは鍵)で踏み台にログインします。

  2. 必要なら踏み台側で初期操作

    詳細設定の「プロンプト」「ログイン後CMD」を埋めておくと、踏み台のログイン直後に1回だけコマンドを送れます。

  3. プロンプト1 を待って、コマンド1 を送信

    対象ホストへの ssh を実行します。

  4. プロンプト2 を待って、ターゲットPW を送信

    パスワードは暗号化ストアから取り出され、マクロに渡されます。「ターゲットは鍵認証」にチェックしている場合は、この手順を飛ばして次へ進みます。

  5. プロンプト3 を待って、コマンド3 を送信

    ログイン後の確認コマンドなどを1回だけ実行できます。

設定のコツ

  • プロンプトは画面に出る文字列をそのまま書く。正規表現ではありません
  • プロンプトに色や装飾が付いている場合、見た目どおりには一致しないことがあります。色を外すか、色を含まない部分($ や # など)を指定してください
  • 踏み台のシェルが $ でない場合は、その環境のプロンプトに合わせます(#、> など)
  • 踏み台を使う設定では、接続タイムアウトが自動で延長されます(通常5秒 → 踏み台時15秒)

対象ホストが鍵認証の場合

踏み台側に鍵が用意されている構成なら、ssh ホスト名 だけで対象ホストに入れます。TTP 側では「ターゲットは鍵認証(パスワード入力なし)」(v1.3.0 で追加)にチェックしてください。プロンプト2 と ターゲットPW は入力できなくなり、空で保存されます。

「ターゲットは鍵認証(パスワード入力なし)」にチェックが入った状態。プロンプト2(PW要求)とターゲットPW の入力欄、および「表示」チェックがグレーアウトしている。
チェックすると、プロンプト2とターゲットPW は入力できなくなります。
  • 「コマンド1」に ssh -i ~/.ssh/id_rsa ホスト名 のように鍵を指定する(~/.ssh/config で鍵を設定済みなら ssh ホスト名 でも可)
  • 「ターゲットは鍵認証」にチェックを入れる(プロンプト2・ターゲットPW が無効化されます)
  • 「プロンプト3」に対象ホストのプロンプト($ など)を入れる

踏み台側の準備は、次のいずれかになります。

  • 踏み台の ~/.ssh/ に対象ホスト用の鍵を置き、対象ホストの authorized_keys に登録しておく
  • ~/.ssh/config に Host を定義し、ssh ホスト名 で入れるようにしておく
  • ssh-agent を転送する(ForwardAgent yes)

初回だけホスト鍵の確認(Are you sure you want to continue connecting?)が挟まることがあります。事前に手動で一度ログインしておくか、踏み台側の known_hosts に登録しておくと、自動化が途中で止まりません。

鍵にパスフレーズがある場合は、このチェックを外してください。「プロンプト2」に Enter passphrase、「ターゲットPW」にパスフレーズを入れると、パスフレーズの入力も自動化できます。

現在の制限

できることだけを書くと誤解を生むので、範囲外も明記します。

  • 待ち合わせと送信は3回までです。4段以上の多段接続は表現できません
  • ProxyCommand やポートフォワードによる多段接続ではなく、「画面の文字列を待って送る」方式です
  • 対話的な入力が2回以上挟まる構成(MFA など)は、1回分しか送れません
  • 初回のホスト鍵確認が残っていると、そこで止まります

TeraTerm Menu との違い

TeraTerm Menu でも踏み台経由の接続はできますが、踏み台の先の操作はマクロ側の記述になります。TTP は接続先ごとの設定項目なので、マクロを書かない人でも踏み台経由の接続先を追加できます。

詳しくはTeraTerm Menu と TTP の違いをご覧ください。

最終更新: 2026年11月14日