Tera Term マクロの基礎となるログイン処理
Tera Term のマクロを作成・使用することで、対象のネットワーク機器に対して自動でコンソール、Telnet、SSH、Telnet によるログインをすることができます。Tera Term マクロでは機器へのログインをした上で様々な処理をすることがほとんどですので、まずはログインする処理の記述方法を覚えてください。
Tera Term マクロでは機器へログインするために connect コマンドを使用します。本記事では connect コマンドの記述方法を説明します。
動作確認環境
- Tera Term Version 4.104
- Cisco C891FJ-K9 Version 15.9(3)M10
- F5 BIG-IP Version 17.1.2
この記事の対象範囲
この記事では以下の範囲までの処理を対象とします。
- コンソール接続の場合:
- シリアル接続してログインプロンプトが表示されるまでが対象(認証が設定されている場合)
- Cisco機器でログインプロンプトから認証を行い特権EXECモードへ移行するまでのマクロ例も紹介します
- Telnet 接続の場合:
- 機器に Telnet 接続してログインプロンプトが表示されるまでが対象
- Cisco機器でログインプロンプトから認証を行い特権EXECモードへ移行するまでのマクロ例も紹介します
- SSH 接続の場合:
- 機器に SSH 接続してユーザ認証を行い、ログイン後のプロンプトが表示されるまでが対象
- Cisco機器でユーザ認証後のプロンプトから特権EXECモードへ移行するまでのマクロ例も紹介します
コンソール接続マクロの作り方
ここでいう「コンソール接続」とは、以下の Tera Term の「新しい接続」画面にて「シリアル」を選択して接続する方法です。

コンソール接続する場合の connect コマンドの記述方法
コンソール接続する場合は以下の構文で connect コマンドを記述します。
- connect "/C=<COM番号>"
- <COM番号>:Tera Term の「新しい接続」画面にて指定するCOMポート番号(1,2,...)
例えば、COM5 のポートを使用してシリアル接続する場合は以下のコマンドになります。
connect "/C=5"
このマクロを実行すると、以下のようにコンソール画面が表示されます。

上記のコマンド例ではコンソール接続するのみなので、ただ画面が表示されるだけの結果になります。画面が表示された後 Enter キーを押下すると以下のようにログインプロンプトが表示され、コンソール接続できていることを確認できます。(Cisco 機器で、ユーザ認証が設定されている場合)

【マクロ例】コンソール接続後にユーザ認証を行い特権EXECモードに移行する
Cisco 機器を対象として、コンソール接続に加えてユーザ認証と特権EXECモードへの移行も含めたマクロ例を以下に示します。
connect "/C=5"
sendln
wait "Username:"
sendln "admin"
wait "Password:"
sendln "adminpassword"
wait "MyRouter>"
sendln "enable"
wait "Password:"
sendln "enablepassword"
このマクロを実行すると、以下画像のようにコンソール接続後に特権EXECモードまで移行することができます。

コンソール接続マクロの注意点
マクロでコンソール接続をするためには connect コマンドにて COM ポート番号を指定する必要があります。この COM ポート番号は使用する PC と使用するコンソールケーブルによって決定されるため、使用する PC とコンソールケーブルに合わせてマクロで指定する COM ポート番号を変える必要があります。自動で COM ポート番号を検出するマクロを作成することもできますが、少し複雑になります。
このため、コンソール接続を前提としたマクロが作成・使用されることはそれほど多くはありません。
Telnet 接続マクロの作り方
ここでいう「Telnet 接続」とは、以下の Tera Term の「新しい接続」画面にて「TCP/IP」を選択して「サービス」として「Telnet」を指定して接続する方法です。

Telnet 接続する場合の connect コマンドの記述方法
Telnet 接続する場合は以下の構文で connect コマンドを記述します。
- connect "<IPアドレス>:23 /nossh /T=1"
- <IPアドレス>:接続先機器の IP アドレス、またはFQDN(名前解決できる場合)
- IPアドレスの後の「23」は宛先ポート番号。接続先機器のTelnet待ち受けポートが「23」以外の場合は変更する
例えば、IP アドレス 10.1.1.1 の機器に Telnet 接続する場合は以下のコマンドになります。
connect "10.1.1.1:23 /nossh /T=1"
このマクロを実行すると、以下のようにコンソール画面が表示されログインプロンプトが表示されます。(Cisco 機器で、ユーザ認証が設定されている場合。)

【マクロ例】Telnet 接続後にユーザ認証を行い特権EXECモードに移行する
Cisco 機器を対象として、Telnet 接続に加えてユーザ認証と特権EXECモードへの移行も含めたマクロ例を以下に示します。
connect "10.1.1.1:23 /nossh /T=1"
wait "Username:"
sendln "admin"
wait "Password:"
sendln "adminpassword"
wait "MyRouter>"
sendln "enable"
wait "Password:"
sendln "enablepassword"
このマクロを実行すると、以下画像のように Telnet 接続後に特権EXECモードまで移行することができます。

Telnet 接続マクロの注意点
Telnet 接続の場合、Telnet 接続後にコンソール上で認証を行います。Telnet の認証方式としては、接続先機器の設定内容によってパスワードのみによる認証か、ユーザ認証かの2パターンが存在します。よって、接続先機器の認証方式によってマクロの処理内容を変える必要があります。
やや複雑になりますが、どちらの認証方式でも対応できるようなマクロを作成することもできます。このようなマクロの作成方法については別の記事で説明します。
SSH 接続マクロの作り方
ここでいう「SSH 接続」とは、以下の Tera Term の「新しい接続」画面にて「TCP/IP」を選択して「サービス」として「SSH」を指定して接続する方法です。

SSH 接続の場合、connect コマンドで接続する際に認証処理まで含めて行うことになります。SSH の認証方式としては主に以下の3種類があります。
- ユーザ・パスワード認証
- ユーザ名とパスワードを使用して認証。最も多くほとんどの場合はこの方式
- チャレンジレスポンス認証(キーボードインタラクティブ認証)
- F5 BIG-IP など一部機器で使用されている認証方式
- ユーザ名とパスワードを使用する点はユーザ・パスワード認証と同様
- 公開鍵認証
- 案件によって機器の設計として公開鍵認証が設定されている場合がある
- 接続元端末に公開鍵に対応する秘密鍵が必要
認証方式によって connect コマンドの構文が異なります。
SSH 接続(ユーザ・パスワード認証)する場合の connect コマンドの記述方法
ユーザ・パスワード認証による SSH 接続する場合は以下の構文で connect コマンドを記述します。
- connect "<IPアドレス>:22 /ssh /2 /auth=password /user=<ユーザ名> /passwd=<パスワード> /nosecuritywarning"
- <IPアドレス>:接続先機器の IP アドレス、またはFQDN(名前解決できる場合)
- IPアドレスの後の「22」は宛先ポート番号。接続先機器のSSH待ち受けポートが「22」以外の場合は変更する
- /ssh /2:SSHバージョンが2であることを示す
- /auth=password:ユーザ・パスワード認証方式であることを示す
- <ユーザ名>:認証用ユーザ名
- <パスワード>:ユーザのパスワード
- /nosecuritywarning:Tera Term で SSH 接続時の「セキュリティ警告」画面を表示させないためのオプション
例えば、IP アドレス 10.1.1.1 の機器にユーザ admin、パスワード admin を使用して SSH 接続する場合は以下のコマンドになります。
connect "10.1.1.1:22 /ssh /2 /auth=password /user=admin /passwd=admin /nosecuritywarning"
このマクロを実行すると、以下のようにコンソール画面が表示され、ログイン後のプロンプトが表示されます。

SSH 接続(チャレンジレスポンス認証)する場合の connect コマンドの記述方法
チャレンジレスポンス認証による SSH 接続する場合は以下の構文で connect コマンドを記述します。
- connect "<IPアドレス>:22 /ssh /2 /auth=challenge /user=<ユーザ名> /passwd=<パスワード> /nosecuritywarning"
- <IPアドレス>:接続先機器の IP アドレス、またはFQDN(名前解決できる場合)
- IPアドレスの後の「22」は宛先ポート番号。接続先機器のSSH待ち受けポートが「22」以外の場合は変更する
- /ssh /2:SSHバージョンが2であることを示す
- /auth=challenge:チャレンジレスポンス認証方式であることを示す
- <ユーザ名>:認証用ユーザ名
- <パスワード>:ユーザのパスワード
- /nosecuritywarning:Tera Term で SSH 接続時の「セキュリティ警告」画面を表示させないためのオプション
例えば、IP アドレス 192.168.75.100 の機器にユーザ root、パスワード rootpass を使用して SSH 接続する場合は以下のコマンドになります。
connect "192.168.75.100:22 /ssh /2 /auth=challenge /user=root /passwd=rootpass /nosecuritywarning"
このマクロを実行すると、以下のようにコンソール画面が表示され、ログイン後のプロンプトが表示されます。

SSH 接続(公開鍵認証)する場合の connect コマンドの記述方法
公開鍵認証による SSH 接続する場合は以下の構文で connect コマンドを記述します。
- connect "<IPアドレス>:22 /ssh /2 /auth=publickey /user=<ユーザ名> /passwd=<パスワード> /keyfile=<秘密鍵ファイル> /nosecuritywarning"
- <IPアドレス>:接続先機器の IP アドレス、またはFQDN(名前解決できる場合)
- IPアドレスの後の「22」は宛先ポート番号。接続先機器のSSH待ち受けポートが「22」以外の場合は変更する
- /ssh /2:SSHバージョンが2であることを示す
- /auth=publickey:公開鍵認証方式であることを示す
- <ユーザ名>:認証用ユーザ名
- <パスワード>:秘密鍵に設定したパスワード
- <秘密鍵ファイル>:秘密鍵ファイルの絶対パスを指定
- /nosecuritywarning:Tera Term で SSH 接続時の「セキュリティ警告」画面を表示させないためのオプション
例えば、IP アドレス 10.1.1.1 の機器に公開鍵認証を使用して SSH 接続する場合は以下のコマンドになります。
connect "10.1.1.1:22 /ssh /2 /auth=publickey /user=admin /passwd=password /keyfile=C:\Users\user01\Desktop\id_rsa /nosecuritywarning"
このマクロを実行すると、以下のようにコンソール画面が表示され、ログイン後のプロンプトが表示されます。

【マクロ例】SSH 接続後に特権EXECモードに移行する
Cisco 機器を対象として、SSH 接続に加えて特権EXECモードへの移行も含めたマクロ例を以下に示します。
connect "10.1.1.1:22 /ssh /2 /auth=password /user=admin /passwd=admin /nosecuritywarning"
wait "MyRouter>"
sendln "enable"
wait "Password:"
sendln "enablepassword"
このマクロを実行すると、以下画像のように SSH 接続後に特権EXECモードまで移行することができます。

まとめ
- Tera Term マクロの connect コマンド使用してコンソール、Telnet、SSH によるログインを自動化できる
- Cisco 機器にログイン後に特権EXECモードへの移行を行うためには connect コマンドに加えて少し処理を追加する必要がある
- SSH にはユーザ・パスワード認証、チャレンジレスポンス認証、公開鍵認証の3種類の認証方法がある
この記事では、connect コマンドの基本的な記述方法を説明しました。この内容はすべてのマクロの基礎になる知識ですので、まずは自分の環境でもマクロを作成してみて動作確認してみてください。
以下に Tera Term マクロ関連記事をまとめています。
- 基礎知識
- コマンド解説
- ログイン
- コマンド実行
- ログ保存
- ファイル・フォルダ操作
- 文字列操作
- 変数関連
- マクロのモジュール化
- テクニック
- サブルーチン
- オリジナルマクロ
コメント