harry’s memorandum

おれおれメモ

TeratermマクロでSSH自動ログイン

面倒な定型処理をするときの備忘録

基本は2つ

  • wait (イベント)
  • sendln(アクション)

waitでイベントを待ち、受け取ったらsendlnでアクションする。
例) wait(waitファミリー) で Password: プロンプトが返ってきたら パスワード'hoge' を送る。

wait 'Password:'
sendln 'hoge'

SSHでペアキーで自動ログインして、定型処理を行う

以下はmailq の数を表示するだけのサンプルコード

; ユーザ名と秘密鍵とコマンドライン
; 環境に合わせて設定してください。
username = 'username' 
private_key_file = 'C:\Program Files\teraterm\id_rsa.username'
command_line = 'mailq | wc -l'

; 秘密鍵ファイルの確認
filesearch private_key_file
if result = 0 then
  sprintf 'Private key not found!'
  error_msg = inputstr 
  messagebox error_msg 'error'
  exit
else
  messagebox 'keyfile found!' 'ok'
endif

; サーバ
inputbox 'hostname' 'Enter Hostname'
hostname = inputstr

; パスワード
getpassword 'password.dat' username password

sprintf '%s /ssh /2  /auth=publickey /user=%s /passwd=%s /keyfile="%s"' hostname username password private_key_file
connect_syntax = inputstr

; コネクト
connect connect_syntax

; mailqの数
sendln command_line