Tera Term(テラターム)のマクロ機能+SSHプロトコルを用いた自動ログインマクロで、もっとも基本的な形のマクロをご紹介させて頂きます。
通常サーバにSSH接続するには、接続先ホストのIPアドレス・接続ユーザ名・パスワードなどの接続情報が必要ですよね。
今回ご紹介するのは、サーバ接続に必要な情報をマクロ言語TTLファイルに直接記述したバージョンのテラターム自動ログインマクロになります。(セキュリティ的にマズイとかいうのは、いいっこ無しでお願いします!)
このマクロを実行する事により、ユーザ名・パスワード等の情報を入力する事無く、サーバに自動ログインする事が可能となります。管理する対象機器が少ない場合だと、機器毎にマクロファイルを作っておくと便利かもしれませんね。
*TTLファイルとは
Tera Termのマクロ言語TTL(Tera Term Language)で作成されたファイルで、通常拡張子が「*.ttl」で保存されているファイルの事です。
SSH自動ログインマクロ(接続情報固定)
;============================================= ; Filename : ssh_connect-01.ttl ; Description : SSH Auto login ; Author : JUNZOU ; Created : 2011/03/20 ; modified : ;============================================== ;; 接続先ホスト/ユーザ名/パスワード設定 HOSTADDR = '接続先IPアドレス' USERNAME = 'ユーザ名' PASSWORD = 'パスワード' ;============================================== ;; ①コマンド組立て COMMAND = HOSTADDR strconcat COMMAND ':22 /ssh /2 /auth=password /user=' strconcat COMMAND USERNAME strconcat COMMAND ' /passwd=' strconcat COMMAND PASSWORD ;; ②接続 connect COMMAND ;; ③マクロ終了 end
マクロ内容の解説
項番①コマンド組立て
コマンド組立てエリアでは、SSH接続(パスワード認証)に必要な情報の文字列を作成しています。
変数「COMMAND」に「strconcat」コマンドを使用し文字を継ぎ足していく事で接続するための文字列を作成しています。
接続先ホストにIPアドレスを設定した場合は、以下のような文字列が作成される事になります。(xxx.xxx.xxx.xxx部分は、IPアドレス)
;;作成する文字列 xxx.xxxx.xxx.xxx:22 /ssh /2 /auth=password /user=#### /passwd=####
「strconcat」コマンドは、文字列を継ぎ足す機能があります。
SSH接続コマンドで明示的に接続ポートとSSHバージョンを指定していますが、特に指定しなくても接続は可能です。
以下ポート番号、SSHバージョンを指定する際の記述例です。ご参考にどうぞ。
;;コマンド例 connect 'xxx.xxx.xxx.xxx /ssh /auth=password /user=USER /passwd=PASS' connect 'xxx.xxx.xxx.xxx /ssh /1 /auth=password /user=USER /passwd=PASS' connect 'xxx.xxx.xxx.xxx /ssh /2 /auth=password /user=USER /passwd=PASS' connect 'xxx.xxx.xxx.xxx:22 /ssh /1 /auth=password /user=USER /passwd=PASS' connect 'xxx.xxx.xxx.xxx:22 /ssh /2 /auth=password /user=USER /passwd=PASS'
最近では、セキュリティ強化で接続ポートを変更しているVPSサーバもありますのでその際は、接続ポートを変更してください。
項番②接続
接続のエリアでは、項番①で作成した変数(文字列)「COMMAND」を使用し、「connect」コマンドで対象ホストへSSH接続を行います。
項番③マクロ終了
自動ログインが完了するとマクロ機能を終了します。
セッションは維持されたままで、通常のコンソール操作が可能となります。
おわりに
次回は、接続する管理対象サーバの接続ユーザ名・パスワードが固定されている環境で威力を発揮するマクロ。接続ホストのIPアドレス、又はホスト名(名前解決が必要)を入力する事で、対象サーバに自動ログインするマクロをご紹介します。
大変素晴らしいシステム有難うございます。
当方は、windows上のcsvファイルをタスクスケジューラーで定期的にlinuxサーバーへ転送することを考えています。
そこでファイル転送として、下記のように組んでみましたが
Unknown command <<>>home/hoge/public_html
と出てきて動きません。
スペースがあると読めないようです。
どうしたらいいでしょうか? ご教授願います。
;; ①コマンド組立て
COMMAND = HOSTADDR
strconcat COMMAND ‘:22 /ssh /2 /auth=password /user=’
strconcat COMMAND USERNAME
strconcat COMMAND ‘ /passwd=’
strconcat COMMAND PASSWORD
;; ②接続
connect COMMAND
;; ②田嶋追加 これがうまくいかんがです。
cd /home/hoge/public_html
put test.csv
exit
;; ③マクロ終了
end
田嶋さん
メールで回答させてもらいましたので、ご確認ください。