Tera Termマクロ+バッチファイルでCiscoルータへのSSH接続を自動化

ネットワーク

はじめに

自宅のCisco 1812JへSSH接続する際、毎回Tera Termを起動してドメイン名・ユーザー名・パスワードを入力するのが面倒でした。

そこでSSH接続をワンクリックで行えるバッチファイルを作成しました。

バッチファイルからTera Termマクロを実行し、SSH接続後にterminal length 0も自動で実行します。

経緯

これまではTera Termからドメイン名を指定してSSH接続していました。
ドメイン名でSSH接続する記事はこちら
AdGuard Homeで自宅ネットワークの機器にドメイン名でSSH接続する | Yuu Log

ドメイン名で接続できるため、Cisco 1812JのIPアドレスを覚えておく必要がない点は便利でした。
一方で、接続するたびにユーザー名とパスワードを入力する必要があります。
そこで今回は、ワンクリックでSSH接続できるバッチファイルを作成することにしました。

バッチ化のメリット

バッチファイルを実行するだけでSSH接続できるため、Tera Termを起動してドメイン名・ユーザー名・パスワードを入力する手間がなくなります。

また、SSH接続後にter len 0を自動で実行する処理もマクロに組み込めます。

ter len 0はCisco IOSのterminal length 0の省略形です。
これを実行すると、showコマンド実行時にページ送りされず、結果を一度に表示できます。

手順

今回はバッチファイルからTera Termマクロ(TTLファイル)を呼び出す構成にします。
BATファイル → Tera Termマクロ(TTL) → Cisco 1812JへSSH接続

マクロ(.ttl)作成

Cisco 1812JにSSH接続し、ter len 0を打つ

; SSH接続に使用するユーザー名
USERNAME  = 'XXX'

; SSH接続に使用するパスワード
PASSWORD  = 'XXX'

; 接続先ホスト
strdim HOST 1
HOST[0] = 'rt.home'

; SSH接続情報を作成
msg = HOST[0]
strconcat msg ':22 /ssh /auth=challenge /user='
strconcat msg USERNAME
strconcat msg ' /passwd='
strconcat msg PASSWORD

; SSH接続
connect msg

; プロンプトを待機
wait '#'

; ページ送りを無効化
sendln 'ter len 0'

USERNAMEとPASSWORDは設定しているものを入力。
HOST[0] は機器に接続するIPアドレスまたはドメインを入れてください。
私の場合ドメイン設定している’rt.home’を入力しています。

connect msgでCisco 1812JへSSH接続し、wait ‘#’でCisco IOSのプロンプトが表示されるまで待機します。その後、sendln ‘ter len 0’でterminal length 0を実行しています。

注意

今回の方法では、SSH接続に使用するユーザー名とパスワードをTTLファイルに記載しています。

TTLファイルを他人に渡したり、GitHubなどの公開リポジトリへアップロードしたりすると、認証情報が漏洩する可能性があります。

自宅環境など限定された環境で使用し、TTLファイルの取り扱いには注意してください。

バッチファイル(.bat)作成

@echo off

set TTPMACRO=C:\Program Files (x86)\teraterm5\ttpmacro.exe
set MACRO2=C:\Users\XXX\XXX.ttl

"%TTPMACRO%" "%MACRO2%"

TTPMACROにはTera Termマクロ実行ファイル(ttpmacro.exe)のパスを指定します。
MACRO2には先ほど作成したTTLファイルのパスを指定します。

最後の”%TTPMACRO%” “%MACRO2%”で、指定したTTLファイルをTera Termマクロとして実行します。

確認

バッチファイルを実行するとTera Termが起動し、Cisco 1812JへSSH接続されます。
また、SSH接続後にter len 0も自動で実行されました。

うまくいかない?

バッチファイルを実行してもTera Termが起動しない、「無効なホスト」と表示される、起動してすぐ終了してしまう場合は、以下の記事で原因と対処方法を解説しています。

【解決】テラタームマクロをバッチから起動すると「無効なホスト」や文字化けで失敗する原因 | Yuu Log

まとめ

今回は自宅のCisco 1812J接続をバッチ化しました。
ワンクリックで接続できるようになるのはかなり便利に感じました。

タイトルとURLをコピーしました