2019/06/15(土)ssh2 ログイン自動化マクロ
2021/05/21 06:23
ssh2 ログイン自動化マクロ
このサンプルマクロは、以下の仕様を満たすものとします。マクロの目的
アクセス情報を保持し、同一ホストに対する 2 回目以降のパスワード入力を回避します。また、毎回デフォルト設定で良いか問い合わせ、アクセス情報の変更があった場合も収集情報を保持することとします。
この機能により、アクセス先情報を変更した同一ファイルを複数実行しても、パスワードファイル内でコンフリクトしないようになります。
利用可能環境
Teraterm
依存する Tera Term バージョン:Tera Term 4.97 以降*1利用する Tera Term コマンド:
種別:通信 | Ver | 機能の簡易説明 |
---|---|---|
connect | 接続する。 | |
logclose | Tera Term のログを終了する。 | |
loginfo | 4.73以降 | Tera Term のログ取得状態を得る |
logopen | Tera Term のログを開始する。 | |
4.61以降 | ログ再生可能なバイナリオプションの追加。 | |
4.62以降 | ログを開けたかどうか result を返す仕様の追加。 | |
4.80以降 | 端末バッファをログへ含めるオプションの追加。 | |
4.97以降 | ログ行頭へタイムスタンプを追記するオプションの追加。 | |
種別:制御 | Ver | 機能の簡易説明 |
end | マクロの実行そのものを終了する。 | |
if,then,elseif,else,endif | 条件分岐 | |
種別:文字列操作 | Ver | 機能の簡易説明 |
sprintf2 | 4.62以降 | フォーマットされた出力を返す。 |
種別:ファイル操作 | Ver | 機能の簡易説明 |
getdir | MACRO の現在のディレクトリを得る。 | |
makepath | フルパス名を作成する。 | |
種別:パスワードコマンド | Ver | 機能の簡易説明 |
getpassword | パスワードを読み出す。 | |
種別:その他 | Ver | 機能の簡易説明 |
gettime | 現在の時刻を得る。 | |
4.57以降 | 書式を指定するオプションの追加。 | |
4.58以降 | 互換性維持のための仕様変更。 | |
4.74以降 | タイムゾーンを指定するオプションの追加。 | |
4.80以降 | マクロ実行前後でタイムゾーンを復元するよう仕様変更。 | |
inputbox | 文字列を入力するためのダイアログボックスを開く。 | |
4.53以降 | デフォルト入力文字を設定するオプションの追加。 | |
4.54以降 | 特殊文字の解釈を制御するオプションの追加。 | |
messagebox | ダイアログボックスを開き、ユーザーにメッセージを知らせる。 | |
4.54以降 | 特殊文字の解釈を制御するオプションの追加。 | |
4.60以降 | キャンセル時にマクロ停止を確認する機能の追加。 |
マクロの使い方
実行タイミング
任意のタイミングで実行可能です。マクロの指定方法
詳細は TeraTerm マクロの使い方 を参照してください。ttpmacro.exe を利用する場合
ファイルの拡張子 .ttl を ttpmacro.exe へ関連付けしておきます。.ttl ファイルをダブルクリック等で実行します。
ttermpro.exe を利用する場合
ttermpro.exe を利用する場合は、起動時にオプションへ /M=xxx.ttl のように指定します。メニューから実行する場合
Tera Term メニューから「コントロール(O)」→「マクロ(M)」を選択します。対象ファイルを選択して「開く」ボタンをクリックすると、実行されます。
コード
著作権情報
このサンプルマクロに関する著作権は、当サイト管理者が所有しています。著作権者
神場 和也ライセンス
3条項BSDライセンス関連情報
(なし)サンプルコード
ファイルダウンロード
ssh2login.zip※ 解凍してご利用ください。
項目 | 内容 |
---|---|
文字コード | UTF-8 (BOM付) |
実行確認バージョン | Tera Term Ver 4.102 |
備考 | 下記コピペ用ソースコードをファイルに保存したものです。 |
コピペ用
以下のソースコードをファイルに保存のうえご利用ください。※ UTF-8 で保存した場合は BOM の有無に関係なく、UTF-8 / UTF-16 の .ttl ファイルを読み込める Tera Term Ver 4.102 以降で実行する必要があります。
・ssh2 による自動ログインを行うマクロ
想定ファイル名:ssh2login.ttl
; ssh2 login macro of Tera Term ; ; File: ssh2login.ttl ; Description: auto login with SSH2 protocol ; Environment: generic ; Update: 2019/6/15 ; Author: Kazuya Jimba ;;; 環境設定 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; アクセス先 defaulthost = '192.168.0.1' ;; ポート番号 portnumber = 22 ;; ユーザ情報 defaultuser = 'user' ;; ディレクトリ情報 getdir pBaseDir ;; ファイル情報 pPasswdData = 'password.dat' gettime pLogData "teraterm-%Y%m%d.log" ;; パス情報 ; パスワード暗号化ファイル makepath pPasswdFile pBaseDir pPasswdData ; Tera Term ログ makepath pPasswdFile pBaseDir pPasswdData makepath pLogFile pBaseDir pLogData ;;; ログイン情報収集 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; inputbox 'ユーザ名を入力してください' 'アカウント入力' defaultuser username = inputstr sprintf2 msg "%s でアクセスするホスト名を入力してください。" username inputbox msg 'ホスト名入力' defaulthost hostname = inputstr sprintf2 pPasswdName "%s@%s" username hostname getpassword pPasswdFile pPasswdName Password sprintf2 pParameter "%s:%d /ssh /auth=password /user=%s /passwd=%s" hostname portnumber username Password ;;; メイン処理 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; アクセス時のパラメータ隠匿用 connect '/DS' ;; ログイン connect pParameter ;; ログイン確認 if result < 2 then messagebox 'Not connected.' 'Error' end endif ;; ログ取得(自動取得設定対応) loginfo logfile if result == -1 then ; ログを取得していないので、新たにログ取得を開始する logopen pLogFile 0 0 0 1 elseif result & 8 == 0 then flags = result ; タイムスタンプが無効なので、タイムスタンプを有効にして開きなおす。 logclose logopen pLogFile 0 1 flags&4 1 flags&16 endif ;;; 終了処理 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; end