ブログトップ 記事一覧 ログイン 無料ブログ開設

つれづれなるままに

つれづれなるまま、興味のある内容を、独断と偏見で書いているブログ。
時にはパソコン、時にはバイク、趣味まるだしの今回は…

■2012.10.12 (金)

マクロサンプル - 自動ログイン(telnet版)

パスワードが平文で流れるので ssh を使え…と、言われているにもかかわらず、いまだに根強い利用者数を誇るよね。

いい加減、ローカル環境であっても telnet 使うの、やめようよ…。


と、個人的な愚痴はそこまでにして、TeraTerm マクロを使った telnet での自動ログイン。


関連ダイアリー

  1. 一般的な TeraTerm マクロの使い方 - つれづれなるままに
  2. TeraTerm マクロの作り方 - つれづれなるままに

マクロサンプル

これ、すごい使いやすいサンプルがソフトに同梱されてるんだよね。

デフォルトでインストールすると、ここにファイルがあるはず。


C:\Program Files\teraterm\login.ttl


以下、ファイルの内容を記載。

; Sample macro for Tera Term
;  Telnet login

; open Tera Term
;   command line = 'TERATERM myhost.mydomain' (telnet)
connect 'myhost.mydomain'

; set username
UsernamePrompt = 'Username:'
Username = 'MYNAME'
PasswordPrompt = 'Password:'
; get password from file
getpassword 'password.dat' 'mypassword' Password

; login
wait   UsernamePrompt
sendln Username

wait   PasswordPrompt
sendln Password

; OK, auto login complete.

使い方は簡単。

  1. サンプルをテキストエディタで開く。
  2. connect の 'myhost.mydomain' 内をログインしたいサーバ名に修正する。
  3. Username の 'MYNAME' 内を自分のログイン用アカウントに修正する。
  4. ttpmacro.exe に読み込ませる。
  5. TeraTerm が起動して、パスワード入力画面が出てくるので、入力する。
  6. パスワードが正しければ、ログイン完了。

有用なサンプルを、ありがとうございます。


マクロを読み込んで実際に実行するのは TeraTerm なので、TeraTerm がどんなことをすればいいのか…という視点が必要かな。

サンプルの解説

ほんと、単純なログインだけだったらこれ以上ないサンプルなので、解説でも。

まずは connect 'myhost.mydomain' の部分から。


connect 'myhost.mydomain'

connect は、文字通りサーバへ接続するためのコマンド。

引数に、接続したいサーバ名を記述すると、そのサーバにアクセスしようとする。

ポート番号を telnet (23) から変えたい場合は、スペースで区切って、サーバ名 ポート番号 のように入力する。

これは「新しい接続」画面で入力する内容と同じ。


; set username

これは、TeraTerm の変数に、アカウントを入れるよーっていうコメント。


UsernamePrompt = 'Username:'

ログイン時にアカウントを求められる文字列を指定してる。

OS の仕様で、ログインプロンプトが変更されている場合は、要修正。


Username = 'MYNAME'

ユーザがログインするために使うアカウント(ID)を入れてる。


PasswordPrompt = 'Password:'

ログインプロンプトにアカウントを入れた後に求められるパスワード。

その入力を促す文字列を指定してる。

これも必要に応じて修正する。


; get password from file

getpassword 'password.dat' 'mypassword' Password

この getpassword というコマンドは覚えておくと便利。

まず一つ目で、パスワード用ファイルを指定する。

あれば読み込むし、なければ作る。

ファイル自体は、特に変更がなければ ttpmacro.exe のあるフォルダからの、相対パスになる。

setdir で、基本となるフォルダを変えられたはず…(changedir だったらごめんなさい)

2つ目で、読み込むパスワードの名前を指定する。

ひとつのファイルにたくさんパスワードを保存できる仕様なので、どのパスワードを使うのか指定するためのもの。

たとえば、ウェブサーバにログインするのは 'passwordA' で、ファイルサーバにログインするのは 'passwordB' のような感じ。

ファイルがなかったら当然パスワード名もパスワードもないので、ダイアログボックスで入力を促される。

無事に読み込めても、そのままではパスワードが暗号化されている。

これは単なるテキストファイルなので必要な措置。

そこで、3つ目の変数に、解読した内容が入る。


; login

wait UsernamePrompt

wait は、引数にある 'Username:' という文字が TeraTerm の画面に出るまで、ずーっと待ってろ…という命令。

時間制限もあるけど、正しく通信できるならスグに出るはず。


sendln Username

サンプルで言うと 'MYNAME' という文字列を、改行(自動的な Enter)もつけて送れ…という命令。

上のと合わせると「アカウント入力用文字列が来たら、アカウントを入れなさい」となる。


wait PasswordPrompt

sendln Password

ふたつ合わせて「パスワード入力用文字列が来たら、パスワードを入れなさい」となる。


; OK, auto login complete.

これは、単なるコメント。


コマンドを見ていくと、「ログインに必要な情報を集めて、対象サーバにアクセスする」ための、本当にシンプルなマクロだとわかる。

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証