何かしらの理由(セキュリティの都合が多いかな?)で作業対象サーバに接続する際に、あるサーバを経由(踏み台サーバとかよく呼んでいます)して接続しないといけない事って結構あったりしませんか?(私の環境では結構あるんです)
TeraTermなんかを使って一度踏み台サーバに接続して、さらにそこからSSHコマンドを実行して作業対象サーバにログインするのは結構面倒な作業ですよね。
そこで今回は「SSH多段接続(踏み台サーバ経由)」と銘うって、ひとつのTeraTermマクロを実行するだけで作業対象サーバへ接続できるマクロをご紹介したいと思います。
内容はメチャ簡単ですが、そこは突っ込み無しでお願いします。
またパスワードなんかもマクロの中に直書きしてますが、セキュリティ的にはまずいので「Tera Termマクロ-SSH自動ログイン(パスワード暗号化編)」なんかを参考に書き換えてもらえればと思います。(あえて分かりやすいように直書きにしています)
それでは早速マクロをご覧ください。
SSH多段接続自動ログインマクロ
;============================================== ; Filename : ssh_connect-15.ttl ; Description : SSH Auto login ; Author : junzou ; Created : 2014/03/09 ; modified : ;============================================== ;; 踏み台・作業対象サーバ/ユーザ名/パスワード設定 HOSTIP1st = '踏み台サーバIPアドレス' USERNAME1st = '踏み台サーバ接続用ユーザ名' PASSWORD1st = '踏み台サーバ接続用パスワード' HOSTIP2nd = '作業対象サーバIPアドレス' USERNAME2nd = '作業対象サーバ接続用ユーザ名' PASSWORD2nd = '作業対象サーバ接続用パスワード' ;============================================== ;; 踏み台サーバへSSH接続 ;; ①接続用コマンド組立て COMMAND = HOSTIP1st strconcat COMMAND ':22 /ssh /2 /auth=password /user=' strconcat COMMAND USERNAME1st strconcat COMMAND ' /passwd=' strconcat COMMAND PASSWORD1st ;; ②踏み台サーバへ接続 connect COMMAND ;; ③プロンプトが表示されるのを待機 wait '$' '#' ;; 作業対象サーバへSSH接続 ;; ④接続用コマンド組み立て COMMAND = 'ssh ' strconcat COMMAND USERNAME2nd strconcat COMMAND '@' strconcat COMMAND HOSTIP2nd ;; ⑤作業対象サーバへ接続 sendln COMMAND ;; ⑥パスワード入力 wait 'password:' sendln PASSWORD2nd ;; ⑦マクロ終了 end
マクロ内容の解説
特に詳細な説明は必要ありませんね!
「Tera Termマクロサンプル-SSH自動ログイン(接続情報固定版)」
「Tera Termマクロ-TELNET自動ログイン(接続ホスト・ユーザ・パスワード固定版)」
辺りを眺めてもらうとほぼ理解出来ると思われます。
また踏み台サーバと作業対象サーバに同じユーザ・パスワードが存在する環境であればもう少し簡素化(変数を少なくする)する事ができますね。
おわりに
次回はちょっとセキュリティ的に進化させて、SSH多段接続で公開鍵認証なんかを用いた接続方法をご紹介したいと思います。