TeraTermでSSH自動ログインしてログを記録するマクロ

SSHで自動ログインして、
ホスト名_日付.log というログファイルに記録するTeraTermのマクロです。
パスワードログイン版と、公開キーログイン版を用意しました。

パスワード版

ユーザー名:ubuntu
ホスト名: 192.168.0.111
パスワード:初回起動時に入力を求められます

SSH_Login.ttl

;#######################################################################################
 username = 'ubuntu'
 hostname = '192.168.0.111'                ;IPアドレス 又は ホスト名
 portnum = '22'
 passwdfile = '.password'
 logpath = "TeraTermLog"                     ;ログフォルダ名
;#######################################################################################

 ; 以下は基本的に編集する必要はありません 

 ;#########################################################
 ; スクリプトのカレントディレクトリを取得
 ;#########################################################
 getdir ttl_path 

 ;#########################################################
 ; ログディレクトリがなければ作成、ログファイル名を編集
 ;#########################################################
 outpath = ttl_path
 strconcat outpath ".\"
 strconcat outpath logpath
 foldersearch outpath
 if result=0 then
     foldercreate outpath
 endif
 ; ログファイル名の編集(ここはお好みに合わせてカスタマイズ)
 logfilename = outpath
 getdate logdate '%Y%m%d_%H%M%S.log'
 strconcat logfilename ".\"
 strconcat logfilename hostname
 strconcat logfilename '@'
 strconcat logfilename username
 strconcat logfilename '_'
 strconcat logfilename logdate
 ;messagebox logfilename 0

 ;#########################################################
 ;パスワード処理
 ;#########################################################
 sprintf2 passwd '%s@%s' username hostname
 ;パスワードを設定し直すときはパスワードファイルを消すか以下の行を実行
 ;delpassword passwdfile passwd
 getpassword passwdfile passwd userpasswd

 ;#########################################################
 ;SSH接続処理
 ;#########################################################
 msg = hostname
 strconcat msg ':portnum /ssh2 /auth=password /user='
 strconcat msg username
 strconcat msg ' /passwd='
 strconcat msg userpasswd
 strconcat msg inputstr
 connect msg

 ;#########################################################
 ;TeraTermのウィンドウサイズを 160 x 50 に変更(要TeraTerm拡張プラグイン)
 ;#########################################################
 dispstr #$1b"[8;50;160t"

 ;#########################################################
 ;ログ記録開始
 ;#########################################################
 logopen logfilename 1 1

 end

公開キー版

接続先: 192.168.0.222
ポート番号: 8022
シークレットキーのファイル名: XperiaZ2Tablet

公開キー、シークレットキーは接続元のPCで以下のコマンドにて作成

ssh-keygen -t rsa -b 2048 -f XperiaZ2Tablet

XperiaZ2Tablet と XperiaZ2Tablet.pub というファイルができるので XperiaZ2Tablet.pub を接続先の端末へ転送して.ssh/authorized_keysに追加。

XperiaZ2Tablet.pubを接続先のホームにコピーしたらこんな感じになるかな。

cat ~/XperiaZ2Tablet.pub >> ~/.ssh/authorized_keys

SSH_PubKeyLogin.ttl

ターゲット 192.168.0.222
ポート 8022
ユーザー名 Termux
の場合

;#######################################################################################
 username = 'Termux'                         ;ユーザー名(何でも良い)
 hostname = '192.168.0.222'                  ;ターゲットのIPアドレス
 portnum = '8022'                            ;SSHポート番号(Termuxのデフォルトポート番号)
 keyfile = 'XperiaZ2Tablet'                  ;シークレットキーのファイル名
 logpath = "TeraTermLog"                     ;ログフォルダ名
 ;#######################################################################################
 ;;;; 以下は基本的に編集する必要はありません ;;;;;;;;;;;;;;;

 ;#########################################################
 ; スクリプトのカレントディレクトリを取得
 ;#########################################################
 getdir ttl_path 

 ;#########################################################
 ; ログディレクトリがなければ作成、ログファイル名を編集
 ;#########################################################
 outpath = ttl_path
 strconcat outpath ".\"
 strconcat outpath logpath
 foldersearch outpath
 if result=0 then
     foldercreate outpath
 endif
 ; ログファイル名の編集(ここはお好みに合わせてカスタマイズ)
 logfilename = outpath
 getdate logdate '%Y%m%d_%H%M%S.log'
 strconcat logfilename ".\"
 strconcat logfilename hostname
 strconcat logfilename '@'
 strconcat logfilename username
 strconcat logfilename '_'
 strconcat logfilename logdate
 ;messagebox logfilename 0

 ;#########################################################
 ;SSH公開キーのファイル名をフルパスに編集
 ;#########################################################
 keypath = ttl_path
 strconcat keypath ".\"
 strconcat keypath keyfile

 ;#########################################################
 ;SSH接続処理
 ;#########################################################
 msg = hostname
 strconcat msg ":"
 strconcat msg portnum
 strconcat msg " /ssh2 /auth=publickey /user="
 strconcat msg username
 strconcat msg ' /keyfile='
 strconcat msg keypath
 ;messagebox msg 0
 connect msg

 ;#########################################################
 ;TeraTermのウィンドウサイズを 160 x 50 に変更(要TeraTerm拡張プラグイン)
 ;#########################################################
 dispstr #$1b"[8;50;160t"

 ;#########################################################
 ;ログ記録開始
 ;#########################################################
 logopen logfilename 1 1

 end

コメント

タイトルとURLをコピーしました