LoginSignup
7
15

More than 5 years have passed since last update.

TeraTermでログイン先ごとに設定切替と自動ログインを行うマクロを作成した

Last updated at Posted at 2017-03-12

SSHログイン先ごとに設定切替と自動ログインを行うTeraTermマクロを作成した

1. 概要

検証環境と商用環境を取り違える予防として、SSHログイン先ごとにTereTermの設定ファイルを切り替えるTeratermマクロ " teraterm-auto-solarized-macro " を作成した。
設定ファイル上で背景色を変更し、環境を区別できるようにする。
また、パスワード定義ファイルからパスワードの読み出しを行い、自動ログインも行う機能を実装した。
パスワードは暗号化した上で、パスワードファイルに保存するよう、補助ツールも作成した。

作成したマクロのイメージ

接続先ホスト選択
キャプチャ1.PNG

補助ツールでパスワードを暗号化保存
キャプチャ8.PNG
接続先に応じてiniファイルを切り替え
キャプチャ5.PNG

1-1. 機能

auto_solarized.ttl(本体)

  • SSH自動ログイン機能(ベーシック認証)
    設定ファイルに記載されているパスワードは暗号化
  • ホスト一覧プルダウンからのホスト選択
    ホスト一覧にないものは通常のTeraterm起動
  • SSHログイン先ごとに設定ファイルの切り替え
    初期設定状態で3環境(商用, 検証, 開発)を用意
     1. 商用:通常のteratermテーマ
     2. 検証:solarized darkテーマ
     3. 開発:solarized lightテーマ

setpw.ttl(補助ツール)

  • パスワードファイルの生成
  • パスワードの暗号化

hosts.txt(ログイン情報設定ファイル)

  • SSHログイン先ホスト情報の記載
     1. IPアドレス
     2. ホスト名
     3. 環境
     4. ログイン識別子

1-2. マクロ作成の背景

会社で商用環境と検証環境を取り違えて作業を行い、自責障害となったという事例があった。
(商用環境と検証環境のターミナルを横に並べて作業していたため、誤って作業したらしい、、、)
チーム内で予防策を考えることになり、まずは簡単にできる環境ごとに背景色を変えることになった。

1-3. マクロの実行環境

  • Windows
  • Teraterm バージョン4.7.8以降

2. 使い方

2-1. 導入

1.Teratermインストール
ここでは割愛。以下を参照。
TeraTermの最新版(4.82)をWindows7にインストールしてみました!
2.ttlファイルをTeratermマクロ実行ファイル(ttmacro.exe)と関連付け
ここでは割愛。以下を参照。
Tera Term-TTLファイルの関連付け(Windows7編)
3.本プログラムをダウンロード
teraterm-auto-solarized-macro(zip)
4.本プログラムの配置
解凍してTeratermマクロ(ttmacro.exe)と同じフォルダにファイルを展開する
今回の追加対象

C/Program Files (x86)/teraterm
├── ttermpro.exe
├── ttpmacro.exe
├── auto_solarized.ttl (★)
├── hosts.txt (☆)
├── password.txt (☆)
├── setpw.ttl (●)
├── prd.ini (▲)
├── stg.ini (▲)
├── dev.ini (▲)
└── etc...

--------------------------------------
★:マクロ必須ファイル(マクロ本体)
☆:マクロ必須ファイル(設定ファイル)
●:マクロ補助ツール
▲:Teraterm iniファイル(必要に応じて用意)
--------------------------------------

2-2. 初期設定

  • setpw.ttlにログインユーザ名とパスワードを記載する
    DATA_NUMにユーザ・パスワードの組み合わせの合計登録件数を設定(ここでは3としている)※画面キャプチャを差し替える
    ユーザ名は USER_LIST[連番]に設定
    パスワードは PW_LIST[連番]に設定
    キャプチャ7.PNG
  • setpw.ttlを実行する
  • password.txtが作成/更新されたことを確認する キャプチャ8.PNG
  • hosts.txtにSSH接続先情報を書く キャプチャ6.PNG

2-3. 実行

  1. auto_solarized.ttlを実行する
  2. 接続先ホストを選択する
    キャプチャ1.PNG
    リストに登録されているホストへ接続した場合
    リストからホスト名を選択し「OK」ボタンを押下する
    SSH接続され、hosts.txtで定義した環境ごとに異なるinitファイルを読んだことがわかる
    例) 商用(prd): prd.ini
    キャプチャ3.PNG
    検証(stg): stg.ini
    キャプチャ4.PNG
    開発(dev): dev.ini
    キャプチャ5.PNG
    登録されていないホストへ接続したい場合
    「other」を選択すると通常のTeratermログイン画面が表示される
    キャプチャ2.PNG

3. 苦労したところ

teratermマクロでは以下の点に苦労した。

  • foreach がない
  • 文字列分割や比較処理後に結果が格納格納される一時変数が決まったグローバル変数に格納されるため、その後の処理で用いるときに、都度変数に入れるなどする必要があり冗長
  • 関数に引数を渡せない

4. 最後に

ご意見いただけると助かります。

7
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
15