TeraTermのマクロはとても便利だ。ログイン時の処理から、ログイン後のシェル実行までいろいろ使える。今回は、adminでログインして、rootにsu-してパスワード入力するマクロだ。
以下のようなフォルダを作り、そこをTeraTermのマクロを格納することにする。
C:\TTmacro
まずはそこにSSHログイン用の処理を記述したマクロを「ssh_login.ttl」という名前で作り、それを環境ごとのマクロからincludeする。
strcompare conn_method ‘ssh’
ssh_method = !result
strcompare conn_method ‘ssh1’
ssh1_method = !result
strcompare conn_method ‘ssh2’
ssh2_method = !result
if ssh_method then
conn_str = ‘/ssh’
elseif ssh1_method then
conn_str = ‘/ssh /1’
elseif ssh2_method then
conn_str = ‘/ssh /2’
endif
strlen key_file
exist_key_file = result
if exist_key_file then
sprintf ‘%s:%s %s /LA=%s /KT=%s /KR=%s /auth=publickey /user=%s /passwd=%s /keyfile=”%s%s”‘ hostname conn_port conn_str language kanji_transmit kanji_receive username password work_dir key_file
else
sprintf ‘%s:%s %s /LA=%s /KT=%s /KR=%s /auth=password /user=%s /passwd=%s’ hostname conn_port conn_str language kanji_transmit kanji_receive username password
endif
conn_param = inputstr
connect conn_param
次に、各ログイン先ごとのマクロを書く。例として192.168.1.5のサーバに公開鍵方式でadminでログイン後、rootにsu-するマクロ「root@192.168.1.5.ttl」を示す。秘密キー「id_rsa」をマクロ格納フォルダにおく。
; 設定
work_dir = ‘C:\TTmacro\’
hostname = ‘192.168.1.5’
username = ‘admin’
password = ‘adminpassword’
root_password = ‘rootpassword’
key_file = ‘id_rsa’
; 言語 E:英語 J:日本語 K:韓国語 R:ロシア語 U:UTF-8
language = ‘J’
; 漢字コード受信 SJIS EUC JIS UTF8 UTF8m KS5601
kanji_transmit = ‘UTF8’
; 漢字コード送信 SJIS EUC JIS UTF8 KS5601
kanji_receive = ‘UTF8’
; SSHバージョン。 ssh or ssh1 or ssh2
conn_method = ‘ssh’
conn_port = ’22’
; SSHログインを実行する
ssh_login_ttl = ‘ssh_login.ttl’
ssh_login_ttl_path = work_dir
strconcat ssh_login_ttl_path ssh_login_ttl
include ssh_login_ttl_path
; ここからはログイン後の処理
wait username
sendln ‘su -‘
wait ‘Password:’
sendln root_password
秘密キーのファイル指定「key_file」を空にすると通常のパスワード認証になる。
.ttlファイルがTTPMACRO.EXEに関連付けられていなければ、
マクロファイルを右クリック => 「プロパティ」 => プログラムの「変更」ボタン => TTPMACRO.EXEを選択
とする。これで、マクロファイルをダブルクリックするだけで、TeraTermの自動ログインができるようになった。
LogMeTTや、TeraTerm Menuなどで、こうしたマクロを利用するとさらに便利である。
最近のコメント