TeraTermマクロ-SSH自動ログイン(パスワード暗号化 その弐)

Tera Term(テラターム)のマクロ機能を利用し、SSHプロトコル(パスワード認証) でサーバ等に自動ログイン+アルファ(パスワード暗号化)のテラタームマクロをご紹介します。

今回は、全ホストに同じ管理ユーザが存在するが、ホスト毎に管理ユーザのパスワードが異なる場合を想定したパスワード暗号化マクロになります。

前回はパスワードファイルにユーザ毎のパスワードが保存されていましたが、今回はホスト毎にパスワードが保存されます。

一応ファイルに記録されるパスワードは暗号化して保存されていますが、ファイルの取り扱いには充分注意してご利用ください。

スポンサーリンク

SSH自動ログインマクロ(パスワードを暗号化して保存)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
;========================================================== 
; Filename    : ssh_connect-07.ttl 
; Description : SSH Auto login 
; Author      : JUNZOU
; Created     : 2011/04/03 
; modified    : 
;=========================================================== 
;; ユーザ名設定 
USERNAME = 'ユーザ名'
;; パスワードファイル指定 
PASSFILE = 'C:\password.dat' 
;=========================================================== 
;; ①-1接続先ホスト情報入力 
inputbox 'Please input an IP address or the host name.' 'Host information input' 
HOSTADDR = inputstr
 
;; ①-2入力確認(ホスト名 or IPアドレスの入力が無い場合終了) 
strlen HOSTADDR 
if result = 0 then 
    messagebox 'Host information is not input.' 'Input error'
    end 
endif
 
;; ②パスワード取得 
getpassword PASSFILE HOSTADDR PASSWORD
 
;; ③コマンド組立て 
COMMAND = HOSTADDR 
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD
 
;; ④接続 
connect COMMAND
 
;; ⑤接続判定1(接続出来ない場合はメッセージを表示しマクロ終了) 
if result <> 2 then 
    messagebox 'It could not be connected.' 'Connection Error' 
    end 
endif
 
;; ⑥接続判定2(10秒以内にプロンプトが表示されない場合TeraTerm) 
timeout = 10 
wait '$' '#' 
if result=0 then 
    end 
endif
 
;; ⑦ホスト情報表示 
sendln 'uname -a' 
wait '$' '#'
 
;; ⑧マクロ終了 
end

マクロ内容の解説

①接続先ホスト入力・確認

①-1接続先ホスト入力のエリアでは、入力ダイアログボックスを表示し接続先ホストのIPアドレス、またはホスト名(DNSで名前解決が必要)を入力します。
接続ホスト情報入力ポップアップ

①-2では、何も入力しないで「OK」を押してないかの確認を行っています。もし何も入力されていない場合は、以下のエラーを表示しマクロを終了します。
接続ホスト情報が入力されていない場合

②パスワード取得

パスワード取得のエリアでは、接続する際の対象ホストに対するパスワードを「getpassword 」コマンドで指定したパスワードファイルより読み込みを行っています。

TTLコマンド「getpassword」の書式(△は空白)

getpassword△ファイル名△パスワード識別子△文字列変数
⇒ 「getpassword」コマンドの詳細はこちらを参照してください

接続するホストに紐付くパスワードが保存されていない場合は、パスワードを入力するポップアップメニューが表示されます。

123.123.123.123部分は、項番①で入力したIPアドレスになります。
接続ホストに対するパスワード入力画面 

一度パスワードを入力すると、指定したファイルにパスワードが暗号化して保存され、次回からパスワードの入力を求められなくなります。

パスワードファイルの中身は、こんな感じで保存されています。

===================================
[Password]
123.123.123.123=.OCUA?IeBP&(@Dw*i|QiSuuD
===================================

③コマンド組立て/④接続

⇒ コマンド組立て・接続のエリアの解説はこちらを参照

⑤接続判定1/⑥接続判定2

⇒ 接続判定のエリアの解説はこちらを参照

⑦ホスト情報表示

「sendln」コマンドを使用して、コンソール上で「uname -a」コマンドを実行しています。

⑦マクロ終了

自動ログインが完了するとマクロ機能を終了します。

おわりに

パスワードは、一応暗号化されてファイルに保存されていますが、このファイルを盗まれてしまうと元も子もありません。暗号化に満足せずパスワードの管理には十分注意して、このマクロをご利用いただければと思います。

スポンサーリンク

コメントを残す

このページの先頭へ