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