AS400の担当を外れ、Linux、UNIXシステムの運用担当にアサインされて早2か月。
いろいろ不満が出てきました。で作ったのが以下マクロ。
Linuxはノウハウがネット上に転がっているからいいよね。
##はじめに
IDを入力するのは面倒くさい。
パスワード管理ソフトからパスワードをペーストすることも面倒くさい。
宛先ホストのホスト名やIPアドレス入力も面倒くさい。
踏み台サーバを利用していて、ssh接続コマンドの投入も面倒くさい。
鍵ファイルをいちいち配置するのも面倒くさい。
気の利いたTeratermマクロを、ググりながら作るのも面倒くさい。
新しい接続先ができる都度新たな自動ログインマクロを作るのも面倒くさい。
パスワードの平文保管禁止のルールがあって面倒くさい。
といった、面倒くさい諸々を、以下写経頂くだけであらかた解決します!
##前提環境
windowsから2段階でssh接続(標準ポート番号使用)、踏み台サーバ利用
##本体
まずは、本体。定義のところは記入してください。
;#################################################################
;定義・ID/PWの読み込み
;#################################################################
;ログの吐かれるパスを記入します、Teratermにデフォルトのログ設定済だとそちらが優先されますが、ログファイルにホスト名も載るのでこちらの利用がおすすめ。
LOGPATH = '\\hogehoge\logs\'
;踏み台サーバのホスト名またはIPを記入します
FUMIDAI_HOSTNAME = ''
;自分のIDを記入します
USERNAME = ''
;パスワード保管ファイルのパスを記入します
PASSFILE = '\\hogehoge\IDPW.dat'
getpassword PASSFILE USERNAME PASSWORD
strsplit param1 '_' 3
TGT_HOSTNAME = groupmatchstr2
;#################################################################
;ログイン、接続処理
;#################################################################
:login_step
msg = FUMIDAI_HOSTNAME
strconcat msg ':22 /ssh /auth=password /user='
strconcat msg USERNAME
strconcat msg ' /passwd='
strconcat msg PASSWORD
connect msg
settitle"自動ログインマクロ"
;#################################################################
;操作ログの自動保存処理
;#################################################################
getdate datestr
strcopy datestr 1 4 yearstr
strcopy datestr 6 2 monthstr
strcopy datestr 9 2 daystr
gettime timestr
strcopy timestr 1 2 hourstr
strcopy timestr 4 2 minutestr
strcopy timestr 7 2 secondstr
strconcat LOGPATH yearstr
strconcat LOGPATH monthstr
strconcat LOGPATH daystr
strconcat LOGPATH '_'
strconcat LOGPATH hourstr
strconcat LOGPATH minutestr
strconcat LOGPATH secondstr
strconcat LOGPATH '_'
strconcat LOGPATH groupmatchstr1
strconcat LOGPATH '_'
strconcat LOGPATH groupmatchstr2
strconcat LOGPATH '.txt'
logopen LOGPATH 0 0
wait ' ~]$'
logoncommand = 'ssh '
strconcat logoncommand USERNAME
strconcat logoncommand '@'
strconcat logoncommand TGT_HOSTNAME
strconcat logoncommand ' ; exit'
sendln logoncommand
wait 'password:' 'Password:' 'Are you sure you want to continue connecting (yes/no)?'
if result <= 2 then
sendln PASSWORD
else
sendln 'yes'
wait 'password:' 'Password:'
sendln PASSWORD
endif
##パスワード登録ツール
続いて、パスワード登録ツール。
;パスワード保管ファイルのパスを記入します
PASSFILE = '\\hogehoge\IDPW.dat'
inputbox 'ユーザ名' 'データ入力画面'
USERNAME = inputstr
:try_password
passwordbox 'パスワード' 'データ入力画面'
PASSWORD = inputstr
passwordbox 'パスワード(確認用)' 'データ入力画面'
strcompare PASSWORD inputstr
if result = 0 then
goto save
else
messagebox "新パスワードが一致しません。再入力してください。" "エラー"
goto try_password
endif
:save
setpassword PASSFILE USERNAME PASSWORD
messagebox "IDとPWが正常に保管されました。" "成功!"
##接続対象ホスト毎に作るマクロ
実際に叩く(ダブルクリックする)マクロがこちら。
ファイル名にホスト名、IPアドレスを入れてください。
これを、管理対象のサーバの数だけ生成しておきます。
include '#auto_login_sub.ttl'
細かいエラーハンドリングはさすがに面倒見きれません。ご容赦を。
初回、#setpassword.ttlを叩いてパスワード登録してから使ってくらはい。
ほなね。