毎回TeraTermにIP・ユーザー情報を入力するのが面倒だと思ったのがきっかけで、TeraTermマクロを初めて作成してみました。
TeraTermをインストールする手順は割愛しますが、
TeraTermをダウンロードするとマクロのサンプルが入っているのでそれを参考にしました。
今回はssh2login.ttlを参考にしています。(左画像)
今回は、接続先IPとユーザー名をべた書きし、パスワードは暗号化する方法で作成しました。
更に、mysqlコマンドを実行させ、DBにログインしています。
(この段階ではDBログイン情報はべた書きしてます。)
strconcat <string> <string2> で文字列変数stringにstring2を継ぎ足すという意味です。
ログインは以下のようにしている訳ですね。
192.168.13.90:22 /ssh /auth=password /user=root /passwd=<password.iniからrootユーザのパスワードを取得>
このpassword.iniですが、マクロを配置しているディレクトリに既にファイルがあればそのファイルを読み取り、
無ければ自動で新規作成されるようになっています。
↓sampleマクロ①
; sample macro of Tera Term
;
; File: login.ttl
; Description: auto login with SSH2 protocol
; Environment: generic
; Update: 2018/7/5
; Author: Waka
username = 'root'
hostname = '192.168.13.90'
passwdfile = 'password.ini'
getpassword passwdfile username passwd
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
msg = hostname
strconcat msg ':22 /ssh /auth=password /user='
strconcat msg username
strconcat msg ' /passwd='
strconcat msg passwd
connect msg
wait '[root@testserver ~]#'
sendln 'mysql -u trapper net_snmp -ptrapass'
sendln 'select * from cachepcs order by registration;'
でもこれだとサーバー接続時のログイン情報は暗号化されますが、DB接続時のパスワードが見えちゃうのでセキュリティ的に微妙です。
自分だけが使用するのであれば問題はなさそうですが、誰かと共有はできなさそう、、、、
という訳で、DB接続時のパスワードをssh接続のときと同様暗号化しようとしました。
先に言いますが、失敗しています。
sampleマクロ②
~省略~
sqluser = 'trapper'
hoge= 'mysql -u'
strconcat hoge sqluser
strconcat hoge ' net_snmp -p'
strconcat hoge passwd
connect hoge
sampleマクロ②は失敗作です。
sshのときと全く同じようにすればDB接続時のパスワードも暗号化されうまくいくかと思いましたが甘かったです。
ここでアイデアをもらいました。(現場で私の隣に座っている何でも屋の人です)
sendlnというコマンドでパスワードを入力する方法がありました。
sampleマクロ③
~省略~
getpassword passwdfile 'sqlpasswd' sqlpasswd
sendln 'mysql -u trapper net_snmp -p'
PasswordPrompt = 'Enter password:'
wait PasswordPrompt
sendln sqlpasswd
sampleマクロ③はバッチリ成功しました!!!
TeraTermマクロは初の試みでしたが、慣れれば時間短縮になりますしこれから身につけていきたいですね!