lolipopのサーバに,TeraTermを使用してSSHで自動ログインする


lolipopではsshによるリモートログインが可能なのですが、セキュリティ対策のため、ユーザがパスワードを指定する事が出来ずランダム文字列になっています。
しかもこの文字列、30文字以上あるので管理が面倒です。

そこで、今回はTeraTeramを使用して、lolipopのサーバにログインできるよう、マクロを組んでみます。
また、パスワードは一度入力したら、暗号化した形で保存しておき、毎回入力しないで済むようにします。
SSHで安全なリモートアクセスを構築する

まず、下記のファイルをlolipop.ttlというファイルで保存します。

; パスワード保存ファイル(暗号化して保存)
PASSFILE = 'C:\\TeraTermPw.txt'
 
; 接続先サーバ,ユーザ名
HOSTADDR = 'sshXXX.lolipop.jp'                     ; 接続先サーバを指定
USERNAME = 'XXXXXX'                                ; 接続ユーザ名を指定
 
; パスワードが保存されていなければダイアログを表示
getpassword PASSFILE HOSTADDR PASSWORD
 
 
; sshの接続コマンドを組み立てる(lolipop ssh port=2222)
strconcat COMMAND ':2222 /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD
 
; サーバに接続する
connect COMMAND
 
; 接続エラーの場合は終了
if result<>2 then
	messagebox ‘サーバに接続できませんでした.’ ‘error’
	end
endif



ファイル中のHOSTADDR、USERNAME には実際に管理しているサーバ、ユーザ名を入力して下さい。

これらの値lolipopの管理画面から確認できます。
Webツール→SSHを選択すると表示されます。




次に、このファイルをパラメータに、TeraTermを自動起動するバッチを書きます。
login.bat

C:\xxx\TeraTerm\ttermpro.exe /M=C:\lolipop.ttl



これで、バッチを実行するだけで、lolipopのサーバにログインする事ができます。
(初回だけパスワードを聞かれます)


さらに、ttlファイルの”connect COMMAND”の前に、以下の記述を追加すると、実行したコマンドをログファイルに落とす事も可能です。

; ログファイルを指定する(フォルダは事前に作成する必要あり)
getdate datestr
gettime timestr
strcopy timestr 1 2 hourstr
strcopy timestr 4 2 minutestr
strcopy timestr 7 2 secondstr
 
filename = 'c:\\log_teraterm_'
strconcat filename datestr
strconcat filename '_'
strconcat filename hourstr
strconcat filename minutestr
strconcat filename secondstr
strconcat filename '.log'
;messagebox filename "ログファイル名"
logopen filename 0 0



また、ttlファイルの最後に以下のように書くと,ログインした直後にコマンドを実行することが出来ます。

; コマンドを実行
wait '$'
sendln 'date'


例ではdateコマンドを実行していますが、ワンクリックで簡単にログを見たいときなどは、sendlin ’tail -f logtile.txt’などと書いておくと、手間が省けて便利です。
Linuxセキュリティ入門

関連記事

コメントを残す

メールアドレスが公開されることはありません。