Tera Termマクロ活用入門(1):各種ログインを自動化する 5ページ
自動多段ログイン
ネットワーク環境によっては、あるサーバー(中継サーバー)にSSHでログインし、さらにそのサーバーから別のサーバーにログインする、という作業が必要な場合がある。このような場合、中継サーバーへのログインと、そこから目的のサーバーへのログインを自動で行うようにマクロを用意すると便利だ。たとえば、上記で紹介している自動接続マクロの最後に次のリスト7のマクロを追加すればよい。
リスト7 リモートホストへの接続語、自動的に別のホストにSSH接続するマクロ
;; 2段目のSSH接続 host_2nd = '<ユーザー名>@<ホスト名> ; 目的のサーバー(2回目のSSH先)のユーザー名とホスト名。例)otp@192.168.3.4 remote_prompt = '$' ; シェルのプロンプトを指定する。bash系なら「$」、cshなら「%」、tcshなら「>」など ssh_command = 'ssh ' strconcat ssh_command host_2nd wait remote_prompt sendln ssh_command
たとえば、リスト4にこのマクロを追加したものを実行すると、Tera Termの起動後にまず中継サーバーへのSSH接続が行われ、続いて目的のサーバーへの接続が行われてパスフレーズ(もしくはパスワード。環境によって異なる)が要求される(図5)。
|
| 図5 多段ログインの実行例 |
また、リスト7の代わりにリスト8のようなマクロを利用することで、2回目以降はパスワードの入力を行わずに目的のサーバーへのログインが可能になる。
リスト8 リモートホストへの接続語、自動的に別のホストにSSH接続するマクロ(自動ログイン版)
;; 2段目のSSH接続 host_2nd = '<ユーザー名>@<ホスト名> ; 目的のサーバー(2回目のSSH先)のユーザー名とホスト名。例)otp@192.168.3.4 remote_prompt = '$' ; シェルのプロンプトを指定する。bash系なら「$」、cshなら「%」、tcshなら「>」など ssh_command = 'ssh ' strconcat ssh_command host_2nd passwdkey = hostname strconcat passwdkey '-' strconcat passwdkey host_2nd passwd_prompt = 'pass' getpassword passwdfile passwdkey password wait remote_prompt sendln ssh_command wait passwd_prompt sendln password
今回紹介したツール:Tera Term
- 作者:Tera Term Project
- 動作環境:Windows
- ライセンス:BSDライセンス、GPLv2
- ホームページ:http://ttssh2.sourceforge.jp/
- ダウンロードページ:http://sourceforge.jp/projects/ttssh2/