使用方法
TeraTermでSSH接続を行うTTLマクロです。
基本的に接続毎にTTLマクロファイルを用意する想定です。
ホスト設定のみ編集することで使用できます。
初回起動時のみユーザ名やパスワードの入力が求められますが、次回以降は不要になります。
もしユーザ名やパスワードを変更した場合は、dataディレクトリ内のファイルを削除すればユーザ名やパスワードの入力が求められるようになります。
SSH接続TTLマクロ(ログファイルなし)
; カレントディレクトリパス取得
getdir DIR
; ホスト設定
HOSTADDR = 'XXX.XXX.XXX.XXX'
LOGINUSERFILENAME = 'username_'
strconcat LOGINUSERFILENAME HOSTADDR
LOGINPWFILENAME = 'password_'
strconcat LOGINPWFILENAME HOSTADDR
FILEEXTENSION = '.dat'
INIFILE = 'TERATERM.INI'
; ユーザ情報格納ディレクトリ
USERINFODIR1 = DIR
strconcat USERINFODIR1 '\data'
USERINFODIR2 = USERINFODIR1
strconcat USERINFODIR2 '¥'
; ユーザファイル
USERNAMEFILE = USERINFODIR2
strconcat USERNAMEFILE LOGINUSERFILENAME
strconcat USERNAMEFILE FILEEXTENSION
USERNAMEPWFILE = USERINFODIR2
strconcat USERNAMEPWFILE LOGINPWFILENAME
strconcat USERNAMEPWFILE FILEEXTENSION
; ユーザ情報格納ディレクトリチェック
foldersearch USERINFODIR1
if result = 0 then
foldercreate USERINFODIR1
if result <> 0 then
ERRORCREATEDIR = 'ディレクトリ作成に失敗しました。パス='
strconcat ERRORCREATEDIR USERINFODIR1
messagebox ERRORCREATEDIR 'ディレクトリ作成エラー'
end
endif
endif
; ユーザ名、パスワード取得
getpassword USERNAMEFILE LOGINUSERFILENAME LOGINUSER
getpassword USERNAMEPWFILE LOGINPWFILENAME LOGINPW
; 接続コマンド作成
COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /auth=password /user='
strconcat COMMAND LOGINUSER
strconcat COMMAND ' /passwd='
strconcat COMMAND LOGINPW
strconcat COMMAND ' /F='
strconcat COMMAND INIFILE
; 接続実行
connect COMMAND
if result <> 2 then
ERRORHOST = 'ホストに接続できませんでした。ホスト='
strconcat ERRORHOST HOSTADDR
messagebox ERRORHOST '接続エラー'
end
endif
; 表示待ち
timeout = 10
wait LOGINUSER '@'
if result = 0 then
disconnect
end
endif
; マクロ終了
end
SSH接続TTLマクロ(ログファイルあり)
; カレントディレクトリパス取得
getdir DIR
; 日付取得
getdate TODAY '%Y%m%d'
getdate NOW '\%Y%m%d_%H%M%S'
; ホスト設定
HOSTADDR = 'XXX.XXX.XXX.XXX'
LOGINUSERFILENAME = 'username_'
strconcat LOGINUSERFILENAME HOSTADDR
LOGINPWFILENAME = 'password_'
strconcat LOGINPWFILENAME HOSTADDR
FILEEXTENSION = '.dat'
LOGEXTENSION = '.log'
INIFILE = 'TERATERM.INI'
; ユーザ情報格納ディレクトリ
USERINFODIR1 = DIR
strconcat USERINFODIR1 '\data'
USERINFODIR2 = USERINFODIR1
strconcat USERINFODIR2 '¥'
; ユーザファイル
USERNAMEFILE = USERINFODIR2
strconcat USERNAMEFILE LOGINUSERFILENAME
strconcat USERNAMEFILE FILEEXTENSION
USERNAMEPWFILE = USERINFODIR2
strconcat USERNAMEPWFILE LOGINPWFILENAME
strconcat USERNAMEPWFILE FILEEXTENSION
; ログ格納ディレクトリ
LOGDIR1 = DIR
strconcat LOGDIR1 '¥logs'
LOGDIR2 = LOGDIR1
strconcat LOGDIR2 '¥'
strconcat LOGDIR2 TODAY
LOGDIR3 = LOGDIR2
strconcat LOGDIR3 '¥'
; ユーザファイル
LOGFILE = LOGDIR3
strconcat LOGFILE NOW
strconcat LOGFILE LOGEXTENSION
; ユーザ情報格納ディレクトリチェック
foldersearch USERINFODIR1
if result = 0 then
foldercreate USERINFODIR1
if result <> 0 then
ERRORCREATEDIR = 'ディレクトリ作成に失敗しました。パス='
strconcat ERRORCREATEDIR USERINFODIR1
messagebox ERRORCREATEDIR 'ディレクトリ作成エラー'
end
endif
endif
; ログ格納ディレクトリチェック
foldersearch LOGDIR1
if result = 0 then
foldercreate LOGDIR1
if result <> 0 then
ERRORCREATEDIR = 'ディレクトリ作成に失敗しました。パス='
strconcat ERRORCREATEDIR LOGDIR1
messagebox ERRORCREATEDIR 'ディレクトリ作成エラー'
end
endif
endif
; ログ格納日付ディレクトリチェック
foldersearch LOGDIR2
if result = 0 then
foldercreate LOGDIR2
if result <> 0 then
ERRORCREATEDIR = 'ディレクトリ作成に失敗しました。パス='
strconcat ERRORCREATEDIR LOGDIR2
messagebox ERRORCREATEDIR 'ディレクトリ作成エラー'
end
endif
endif
; ユーザ名、パスワード取得
getpassword USERNAMEFILE LOGINUSERFILENAME LOGINUSER
getpassword USERNAMEPWFILE LOGINPWFILENAME LOGINPW
; 接続コマンド作成
COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /auth=password /user='
strconcat COMMAND LOGINUSER
strconcat COMMAND ' /passwd='
strconcat COMMAND LOGINPW
strconcat COMMAND ' /F='
strconcat COMMAND INIFILE
; 接続実行
connect COMMAND
if result <> 2 then
ERRORHOST = 'ホストに接続できませんでした。ホスト='
strconcat ERRORHOST HOSTADDR
messagebox ERRORHOST '接続エラー'
end
endif
; ログ取得開始
logopen LOGFILE 1 1
; 表示待ち
timeout = 10
wait LOGINUSER '@'
if result = 0 then
disconnect
end
endif
; マクロ終了
end