AQ Tech Blog

Tera Term マクロでログインを自動化してみた | AQ Tech Blog

作成者: kosuke.ikeda|2022年10月13日

サムネ出典URL:https://sozaino.site/f/archives/901

本記事の目的

Tera Term マクロを使ってSSH接続を自動化する方法を紹介します。

Tera Term マクロとは

Tera Termとは無料で使用できるSSH接続に使えるツールです。
Tera Term マクロを作成することで、Tera Termの操作を自動化できます。

 

1. どういう時に使うのか。どういうケースで嬉しいのか

ログインをTera Term マクロで行うと、下記のようなメリットがあります。

・公開鍵認証(以後、鍵認証)の場合に毎回鍵を選ぶ手間がなくなる。
・鍵が多くても、鍵の選択を間違うことがない。
・パスワード入力がないため、打ち間違いでアカウントがロックされる心配がない。
・長期間アクセスしていないサーバーでもパスワードを忘れる心配がない。

 

2. 今回、どういう状況でTera Term マクロを使用したのか

今回は鍵認証のサーバーが複数あり、ログインする際の鍵の選択が手間になっていたためTera Term マクロを使用しました。

作成方法

マクロの作成方法は認証方法により違います。
下記で代表的な認証方法での作成方法を紹介します。

前提条件:Tera Termがインストールされていること。

 

鍵認証

  1. 任意のフォルダで任意の名前の拡張子「.ttl」のファイルを作成する。
  2. 1で作成したファイルをテキストエディタで開き、サンプルコードAをコピーして貼り付ける。
  3. HOST, PORT, USERNAME, KEY_FILEに任意の値を記載する。
  4. ttlファイルで右クリックをし、プログラムから開く→別のプログラムを選択 を押下する。 ttermpro.exeを選択し、常にこのアプリを使って.ttlファイルを開くにチェックをいれ、OKを押下する。
  5. ttlファイルをダブルクリックするとログインができる。
    ※背景や文字の色等を設定したい場合は「.INI」ファイルで設定できます。
    ※実行できない場合はフォルダのアクセス権限に問題がある可能性があるので、フォルダ権限の変更または別フォルダへの移動を試してみてください。

サンプルコードA

;=====================================================================  
;; 接続先IPアドレス
HOST = 'xxx.xxx.xxx.xxx'
;; ポート番号(SSH:22)
PORT='22'
;; ユーザ名
USERNAME = 'username'
;; キーファイル名
KEY_FILE = 'keyfile'
;; 設定ファイル(任意)
INI_FILE='TERATERM.INI'
;=====================================================================

;; マクロを配置したフォルダの絶対パス取得
getdir MACRO_DIR

;; マクロを配置したフォルダに秘密鍵のファイルを置く場合は下記のまま使用。
;; それ以外は適宜KEY_FILE_PATHの値を鍵ファイルのパスに変更する。

KEY_FILE_PATH=MACRO_DIR
;;KEY_FILE_PATH=''

;; 鍵ファイルパス生成
strconcat KEY_FILE_PATH '\'
strconcat KEY_FILE_PATH KEY_FILE

;; マクロを配置したフォルダに設定ファイルを置く場合は下記のまま使用。
;; それ以外は適宜INI_FILE_PATHの値を設定ファイルのパスに変更する。

INI_FILE_PATH=MACRO_DIR
;;INI_FILE_PATH=''

;; 設定ファイルパス生成(任意)
strconcat INI_FILE_PATH '\'
strconcat INI_FILE_PATH INI_FILE

;; 接続コマンド生成
COMMAND = HOST
strconcat COMMAND ':'
strconcat COMMAND PORT
strconcat COMMAND ' /ssh /2 /auth=publickey /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /keyfile='
strconcat COMMAND KEY_FILE_PATH
;; 設定ファイル読み込み(任意)
strconcat COMMAND ' /F='
strconcat COMMAND INI_FILE_PATH

;; 接続
connect COMMAND

end

 

パスワード認証

  1. 任意のフォルダで任意の名前の拡張子「.ttl」のファイルを作成する。
  2. 1で作成したファイルをテキストエディタで開き、サンプルコードBをコピーして貼り付ける。
  3. HOST, PORT, USERNAME, PASSWORDに任意の値を記載する。
  4. ttlファイルで右クリックをし、プログラムから開く→別のプログラムを選択 を押下する。 ttermpro.exeを選択し、常にこのアプリを使って.ttlファイルを開くにチェックをいれ、OKを押下する。
  5. ttlファイルをダブルクリックするとログインができる。
    ※背景や文字の色等を設定したい場合は「.INI」ファイルで設定できます。

サンプルコードB

;=====================================================================  
; 接続情報
;; 接続先IPアドレス
HOST = 'xxx.xxx.xxx.xxx'
;; ポート番号(SSH:22)
PORT='22'
;; ユーザ名
USERNAME = 'username'
;; パスワード
PASSWORD = 'password'
;; 設定ファイル(任意)
INI_FILE='TERATERM.INI'
;=====================================================================

;; マクロを配置したフォルダの絶対パス取得
getdir MACRO_DIR

;; マクロを配置したフォルダに設定ファイルを置く場合は下記のまま使用。
;; それ以外は適宜INI_FILE_PATHの値を設定ファイルのパスに変更する。

INI_FILE_PATH=MACRO_DIR
;;INI_FILE_PATH=''

;; 設定ファイルパス生成(任意)
strconcat INI_FILE_PATH '\'
strconcat INI_FILE_PATH INI_FILE

;; 接続コマンド生成
COMMAND = HOST
strconcat COMMAND ':'
strconcat COMMAND PORT
strconcat COMMAND ' /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD
;; 設定ファイル読み込み(任意)
strconcat COMMAND ' /F='
strconcat COMMAND INI_FILE_PATH

;; 接続
connect COMMAND

end

実際に動かしてみた

鍵認証のパターンを動かしてみようと思います。 2の手順で作成し、鍵ファイルとINIファイルを同じフォルダに配置すると下記のような構成になっています。

フォルダに格納されている「.ttl」ファイルをダブルクリックで実行すると下記のようにログインが成功します。

まとめ

このようにTera Term マクロを使用することで、鍵を探す手間がなくなったり、パスワードの打ち間違いをなくすことができます。
ログイン部分だけでも自動化することで、業務の効率化ができると思うので、興味を持った方はぜひ活用してみてください。

参考:
サクッと作るteratermマクロ入門

TeraTermマクロでSSHコンソールに自動ログイン