読者です 読者をやめる 読者になる 読者になる

Awesome Hacks!

プログラミング初心者なので地道に勉強していきます。分からない人の立場から整理していきます。

TeraTermのマクロで「メニューを選択すると、一度に複数のホストと接続(複数ウィンドウ作成)」

・「接続するホストの組み合わせが複数パターン」
あって、最初にメニューを選択すると、
・「パスワード入力無し」
で、
・そのメニューに応じた「複数ホストを一度に起動」
してくれたり、
・「踏み台サーバを経由して一気に接続」
してくれるマクロが必要だったので調べて作った。
 
Tera Termマクロ活用入門(1):各種ログインを自動化する | SourceForge.JP Magazine

Tera Termでマクロ(TTLファイル)を実行する方法 | Tera Term(テラターム)の便利な使い方

Tera Termマクロサンプル-SSH自動ログイン(接続先選択版) | Tera Term(テラターム)の便利な使い方
TeraTermマクロでSSH多段接続(踏み台サーバ経由)を試みる | Tera Term(テラターム)の便利な使い方

一つのTeratermのマクロで複数のTeratermのウィンドウを立ち上げることはできますか? 【OKWave】


自分が作成したマクロは以下。

;============================================ 
; Filename    : ssh_connect-douji-tadan.ttl 
; Description : SSH Auto login 
; Author      : TAMA
; Created     : 2014/11/24 
; modified    : 
;============================================ 
;; ユーザ名/パスワード設定 
USERNAME = ''              ;; 初期化(不要かも)
PASSWORD = ''              ;; 同上
;============================================ 
;; ①接続パターン選択 
MESSAGE = '接続パターンを選択してください。'#13#13 
strconcat MESSAGE ' 1 - 接続先単独パターン01'#13 
strconcat MESSAGE ' 2 - 接続先複数パターン02'#13 
strconcat MESSAGE ' 3 - 多段接続パターン03' 
inputbox MESSAGE 'ホストに接続します。'
 
str2int PATTERN inputstr
 
;; 2.選択メニューに応じて処理実施 
if PATTERN = 1 then  ;; 接続先が一つの場合
    ;; 3.ユーザ名、パスワード、IPアドレスの設定
    USERNAME = 'TAMA'
    PASSWORD = 'abc123' 
    ADDR = 'www.xxx.yyy.zzz'
 
    ;; 4.コマンド組み立て
    COMMAND = HOSTADDR 
    strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
    strconcat COMMAND USERNAME 
    strconcat COMMAND ' /passwd=' 
    strconcat COMMAND PASSWORD
 
    ;; 5.接続 
    connect COMMAND
 
    ;; 6.設定ファイル(例:TERATERM_SET.INI)を読み込む場合
    ;; 読み込まない場合、省略またはコメントアウト可
    restoresetup 'TERATERM_SET.INI'
 
 
elseif PATTERN = 2 then  ;; 一度に複数ホストに接続する場合
    ;; 3-A.ユーザ名、パスワード、IPアドレスの設定
    USERNAME = 'TAMA'
    PASSWORD = 'abc123' 
    ADDR = 'aaa.aaa.aaa.aaa'    ;; 1台目ホストのIPアドレス
 
    ;; 4-A.コマンド組み立て
    COMMAND = HOSTADDR 
    strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
    strconcat COMMAND USERNAME 
    strconcat COMMAND ' /passwd=' 
    strconcat COMMAND PASSWORD
 
    ;; 5-A.接続 
    connect COMMAND
 
    ;; 6-A.設定ファイル(例:TERATERM_SET.INI)を読み込む場合
    ;; 読み込まない場合、省略またはコメントアウト可
    restoresetup 'TERATERM_SET.INI'
 
    ;; 7-A.複数同時起動のポイント☆
    unlink    ; TeraTermのウィンドウを切り離す
 
 
    ;; << 2台目 >>
    ;; 3-B.ユーザ名、パスワード、IPアドレスの設定
    ;; USERNAME = 'TAMA'     ;; ユーザ名やパスワードが同じ場合省略可
    ;; PASSWORD = 'abc123' 
    ADDR = 'bbb.bbb.bbb.bbb'    ;; 2台目ホストのIPアドレス
 
    ;; 4-B.コマンド組み立て
    COMMAND = HOSTADDR 
    strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
    strconcat COMMAND USERNAME 
    strconcat COMMAND ' /passwd=' 
    strconcat COMMAND PASSWORD
 
    ;; 5-B.接続 
    connect COMMAND
 
    ;; 6-B.設定ファイル(例:TERATERM_SET.INI)を読み込む場合
    ;; 読み込まない場合、省略またはコメントアウト可
    restoresetup 'TERATERM_SET.INI'
 
    ;; 7-B.複数同時起動のポイント☆
    unlink    ; TeraTermのウィンドウを切り離す
 
 
    ;; << 3台目 >>
    ;; 3-C.ユーザ名、パスワード、IPアドレスの設定
    ;; USERNAME = 'TAMA'     ;; ユーザ名やパスワードが同じ場合省略可
    ;; PASSWORD = 'abc123' 
    ADDR = 'ccc.ccc.ccc.ccc'     ;; 3台目ホストのIPアドレス
 
    ;; 4-C.コマンド組み立て
    COMMAND = HOSTADDR 
    strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
    strconcat COMMAND USERNAME 
    strconcat COMMAND ' /passwd=' 
    strconcat COMMAND PASSWORD
 
    ;; 5-C.接続 
    connect COMMAND
 
    ;; 6-C.設定ファイル(例:TERATERM_SET.INI)を読み込む場合
    ;; 読み込まない場合、省略またはコメントアウト可
    restoresetup 'TERATERM_SET.INI'
 
    ;; 7-C.複数同時起動のポイント☆
    unlink    ; TeraTermのウィンドウを切り離す
 
 
elseif PATTERN = 3 then  ;; 多段接続
    ;; << 1段目 >>
    ;; 3-1.ユーザ名、パスワード、IPアドレスの設定
    USERNAME = 'TAMA1'               ;; 1段目のユーザ名
    PASSWORD = 'abc111'            ;; 1段目のパスワード 
    ADDR = 'ddd.ddd.ddd.ddd'    ;; 1段目ホストのIPアドレス
 
    ;; 4-1.コマンド組み立て
    COMMAND = HOSTADDR 
    strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
    strconcat COMMAND USERNAME 
    strconcat COMMAND ' /passwd=' 
    strconcat COMMAND PASSWORD
 
    ;; 5-1.接続 
    connect COMMAND
 
 
    ;; << 2段目 >>
    ;; 3-2.ユーザ名+IPアドレスの設定
    host_2nd = 'TAMA2@eee.eee.eee.eee'    ;; 2段目ホストのユーザ名+IPアドレス
    remote_prompt = ' $'    ;; シェルのプロンプト(bash系「$」,csh「%」)
 
    ;; 4-2.コマンド組み立て
    SSH_COMMAND = ' ssh '
    strconcat SSH_COMMAND host_2nd
    wait remote_prompt     ;; 上記で設定したプロンプトが来るまで待ち受ける
    sendln SSH_COMMAND
    wait ' password:'     ;; ここは待ち受けるキーワードによって任意の文字列に設定した。
    sendln 'abc222'      ;; 2段目のパスワード
 
 
    ;; << 3段目 >>
    ;; 3-3.ユーザ名+IPアドレスの設定
    host_3rd = 'TAMA3@fff.fff.fff.fff'    ;; 3段目ホストのユーザ名+IPアドレス
    remote_prompt = ' $'    ;; シェルのプロンプト(bash系「$」,csh「%」)
 
    ;; 4-3.コマンド組み立て
    SSH_COMMAND = ' ssh '
    strconcat SSH_COMMAND host_3rd
    wait remote_prompt     ;; 上記で設定したプロンプトが来るまで待ち受ける
    sendln SSH_COMMAND
    wait ' password:'     ;; ここは待ち受けるキーワードによって任意の文字列に設定した。
    sendln 'abc333'      ;; 2段目のパスワード
 
 
else 
    ;; メニューに無い数値を選択した場合
    messagebox '不正な数値が入力されました。' 
    end 
endif
 
 
;; マクロ終了 
end