接続する。
connect <command line parameters>
MACRO が Tera Term とリンクされていない場合、Tera Term を起動してMACRO とリンクする。<command line parameters> は、Tera Term を起動する時のコマンドラインパラメータ。
MACRO が Tera Term とすでにリンクされていて、Tera Term がホストに接続されていない場合、Tera Term をコマンドライン <command line parameters> で指定されるホストに接続させる。Tera Term のコマンドラインパラメータについては、"Tera Term Pro コマンドライン"、"TTSSH コマンドライン"を参照。
MACRO が Tera Term とすでにリンクされていて、Tera Term がホストにすでに接続されている場合、このコマンドは無視される。
このコマンドの結果、リンクと接続の状態に応じて以下のうちの一つの値がシステム変数 result に格納される。
値 | 状態 |
---|---|
0 | Tera Term とリンクされていない。 |
1 | ホストへの接続はされていないが、Tera Term へのリンクはされている。 |
2 | リンクおよび接続両方ともされている。 |
"connect" コマンドを実行する前にリンクと接続の状態を調べるには、"testlink" コマンドを使うことができる。
Tera Term と MACRO のリンクしていない状態では、"connect" と "cygconnect", "testlink" 以外の通信コマンドは実行できない。
Tera Termマクロから接続する方法には、3 つの種類があります。
connect 'myserver:23 /nossh /T=1'
connect 'myserver:23'
/nossh を指定することを強く推奨します。このオプションがない場合、Tera Termは teraterm.ini が最後に保存されたときと同じメソッド(telnet もしくは SSH)を使って、接続しようとします。もし、SSHを使って接続しようとするならば、connectマクロは失敗するでしょう。
/T=1 を使うことを推奨します。このオプションがない場合、Tera Term は teraterm.ini の Telnet の値にしたがって接続しようとします。もし、Telnet の値も off の場合、Tera Term は telnet ネゴシエーションをしないので、意図したとおりの通信ができないでしょう。
connect 'myserver /ssh'
この方法は、SSHバージョンを指定せずにSSH接続をします。
connect 'myserver /ssh /1'
connect 'myserver /ssh /2'
/1 と /2 のオプションは、SSH1およびSSH2であることを指定します。
connect 'myserver /ssh /auth=password /user=username /passwd=password'
connect 'myserver /ssh /1 /auth=password /user=username /passwd=password'
connect 'myserver /ssh /2 /auth=password /user=username /passwd=password'
connect 'myserver /ssh /auth=publickey /user=username /passwd=password /keyfile=private-key-file'
connect 'myserver /ssh /1 /auth=publickey /user=username /passwd=password /keyfile=private-key-file'
connect 'myserver /ssh /2 /auth=publickey /user=username /passwd=password /keyfile=private-key-file'
connect 'myserver /ssh /auth=challenge /user=username /passwd=password'
connect 'myserver /ssh /1 /auth=challenge /user=username /passwd=password'
connect 'myserver /ssh /2 /auth=challenge /user=username /passwd=password'
この9つの方法は、マクロからユーザ名とパスワードを渡すことにより、SSH認証ダイアログをスキップさせることができます。/auth=passwordはパスワード認証、/auth=publickeyは公開鍵認証、/auth=challengeはチャレンジレスポンス認証であることを表します。
connect 'myserver /ssh /auth=pageant /user=username'
connect 'myserver /ssh /1 /auth=pageant /user=username'
connect 'myserver /ssh /2 /auth=pageant /user=username'
この3つの方法は、マクロからユーザ名を渡すことにより、SSH認証ダイアログをスキップさせることができます。/auth=pageantはPageantを使用した認証であることを表します。
connect 'myserve /ssh /auth=password /user=username /ask4passwd'
connect 'myserver /ssh /1 /auth=password /user=username /ask4passwd'
connect 'myserver /ssh /2 /auth=password /user=username /ask4passwd'
connect 'myserver /ssh /auth=publickey /user=username /ask4passwd /keyfile=private-key-file'
connect 'myserver /ssh /1 /auth=publickey /user=username /ask4passwd /keyfile=private-key-file'
connect 'myserver /ssh /2 /auth=publickey /user=username /ask4passwd /keyfile=private-key-file'
connect 'myserve /ssh /auth=challenge /user=username /ask4passwd'
connect 'myserver /ssh /1 /auth=challenge /user=username /ask4passwd'
connect 'myserver /ssh /2 /auth=challenge /user=username /ask4passwd'
この9つの方法は、マクロからユーザ名と認証方法を渡して、ポップアップでパスワードの入力を促します。
connect '/C=x'
xはCOMポート番号を表します。たとえば、COM1に接続したいのなら、 connect '/C=1' とします。
出典: http://logmett.com/forum/viewtopic.php?t=28
; パラメータなしで Tera Term を起動 connect '' ; 接続が成功しなかった場合、5秒でタイムアウトが発生 connect 'myserver /timeout=5' ; Tera Term を起動し、telnet セッションを開く connect 'myserver:23 /nossh' ; Tera Term を起動し、SSH セッションを開く connect 'myserver /ssh' ; Tera Term を起動し、SSH1 セッションを開く connect 'myserver /ssh /1' ; Tera Term を起動し、SSH2 セッションを開く connect 'myserver /ssh /2' ; Tera Term を起動する。SSH セッションを開き、ユーザ名とパスワードのプロンプトは表示されない。 connect 'myserver /ssh /auth=password /user=username /passwd=password' ; Tera Term を起動する。SSH1 セッションを開き、ユーザ名とパスワードのプロンプトは表示されない。 connect 'myserver /ssh /1 /auth=password /user=username /passwd=password' ; Tera Term を起動する。SSH2 セッションを開き、ユーザ名とパスワードのプロンプトは表示されない。 connect 'myserver /ssh /2 /auth=password /user=username /passwd=password' ; Tera Term を起動する。SSH セッションを開き、ユーザ名とパスワードと秘密鍵ファイルのプロンプトは表示されない。 connect 'myserver /ssh /auth=publickey/user=username /passwd=password /keyfile=private-key-file' ; Tera Term を起動する。SSH1 セッションを開き、ユーザ名とパスワードと秘密鍵ファイルのプロンプトは表示されない。 connect 'myserver /ssh /1 /auth=publickey/user=username /passwd=password /keyfile=private-key-file' ; Tera Term を起動する。SSH2 セッションを開き、ユーザ名とパスワードと秘密鍵ファイルのプロンプトは表示されない。 connect 'myserver /ssh /2 /auth=publickey /user=username /passwd=password /keyfile=private-key-file' ; Pageantを利用して、公開鍵認証で接続する。ユーザ名とパスワードと秘密鍵ファイルのプロンプトは表示されない。 connect 'myserver /ssh /auth=pageant /user=username' ; Tera Term を起動し、シリアルポート接続を開く。ポート番号は 1 から 最大値(MaxComPort) の範囲内。 connect '/C=x' CommandLine = '111.111.11.11' connect CommandLine
; 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.
; sample macro of Tera Term ; ; File: ssh2login.ttl ; Description: auto login with SSH2 protocol ; Environment: generic username = 'nike' hostname = '192.168.1.3' ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; msg = 'Enter password for user ' strconcat msg username passwordbox msg 'Get password' msg = hostname strconcat msg ':22 /ssh /auth=password /user=' strconcat msg username strconcat msg ' /passwd=' strconcat msg inputstr connect msg
[test.bat] ttpmacro.exe paramtest.ttl "192.168.3.2" ttpmacro.exe paramtest.ttl "192.168.3.2" cal ttpmacro.exe paramtest.ttl "192.168.3.2" uptime ttpmacro.exe paramtest.ttl "192.168.3.2" "man ls" echo foo ttpmacro.exe paramtest.ttl "192.168.3.2" "uname -a" ttpmacro.exe paramtest.ttl "192.168.3.2" "cat /proc/cpuinfo" pause [paramtest.ttl] if paramcnt != 3 then messagebox "Argument error" "ERROR" end endif prompt = 'yutaka@sai(~) ' sprintf2 var "%s:22 /2 /ssh /auth=password /user=yutaka /passwd=yutaka" param2 messagebox var "test" connect var wait prompt sendln param3 wait prompt pause 3 sendln 'exit' pause 3