TeraTermマクロを作成し、sshログインを自動化する方法

TeraTermマクロで自動でsshログインする方法
この記事を読むと・・・
TeraTermマクロでsshログインを自動化する方法が理解できる
目次

TeraTermマクロとは

TeraTermマクロを利用することで自動でサーバにログインしたり、コマンドを実行させたりすることができます。
また、マクロ動かすには、TTLファイル(xxx.ttl)を作成する必要があります。

TeraTermをそもそもインストールしていない方は、以下の記事を参考にしてインストールしてみてください。

TeraTermログインマクロサンプル

パターン1 ログインマクロ(パスワード入力不要)

ログイン時にパスワードの入力が不要なシンプルなログインマクロのサンプルを作成しました。
パスワードをマクロにベタ書きしても問題ない場面でご使用ください。

以下の手順の通り、自身の環境に合わせて変更してログインマクロを作成してください。
 ①サンプルをコピーし、任意の名前(拡張子は.ttl)で保存します。
 ②『IPアドレス』にログインするサーバのIPアドレスを入力してください。(192.168.1.11など)
 ③『ユーザ名』にログインするサーバのユーザ名を入力してください。(rootなど)
 ④『パスワード』にログインに使用するユーザのパスワードを入力してください。
 ⑤上の方にあるログインマクロ情報の部分は好きなように変更してください。行の先頭に『;』をつけることで、その行がコメントとして認識されます。

;######################################################################
; ログインマクロ情報
; 説明: ssh2 自動ログインマクロ(パスワード入力不要)
; 作成日: 2023/03/11
; 更新日: 2023/03/11
; 更新者: NUKO
;######################################################################

;#######################################################################
; 接続先情報
HOSTADDR = 'IPアドレス'
USERNAME = 'ユーザ名'
PASSWORD = 'パスワード'
;######################################################################

;######################################################################
; ssh接続処理
COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD
;######################################################################

; 接続
connect COMMAND

;; マクロ終了
end

ログインマクロ(パスワード入力不要)の解説

まず、「接続先情報」ではサーバに関する情報(IPアドレス、ユーザ名、パスワード)を定義しています。


続いて、「ssh接続処理」ではssh接続するための情報を定義しています。
わかりずらいので流れを以下に記載します。

①「COMMAND」という変数に「HOSTADDR(IPアドレス)」を格納します。
COMMAND(IPアドレス
   ↓
②「COMMAND(IPアドレス)」と「:22 /ssh /2 /auth=password /user=」を文字列結合します。
COMMAND(IPアドレス /ssh /2 /auth=password /user=
   ↓
③「COMMAND(IPアドレス /ssh /2 /auth=password /user=)と「USERNAME(ユーザ名)」を文字列結合します。
COMMAND(IPアドレス /ssh /2 /auth=password /user=ユーザ名
   ↓
④「COMMAND(IPアドレス /ssh /2 /auth=password /user=ユーザ名)と「 /passwd=」を文字列結合します。
COMMAND(IPアドレス /ssh /2 /auth=password /user=ユーザ名 /passwd=
   ↓
⑤「COMMAND(IPアドレス /ssh /2 /auth=password /user=ユーザ名 /passwd=)と「PASSWORD(パスワード)」を文字列結合します。
COMMAND(IPアドレス /ssh /2 /auth=password /user=ユーザ名 /passwd=パスワード


最後に、「接続」では実際にssh接続する処理を定義しています。
connect IPアドレス /ssh /2 /auth=password /user=ユーザ名 /passwd=パスワード

connect IPアドレス /ssh /2 はIPアドレスに対しSSH2で接続することを表しています。
/auth=password /user=ユーザ名 /passwd=パスワード はパスワード認証方式で該当のユーザ名、パスワードでログインすることを表しています。
また、認証方式には他にも以下のようなものもあります。

認証方式記載今回の記載方式
パスワード認証/auth=password /user=(ユーザー名) /passwd=(パスワード)
公開鍵認証/auth=publickey /user=(ユーザー名) /passwd=(パスワード) /keyfile=(ファイルパス)×
チャレンジレスポンス認証/auth=challenge /user=(ユーザー名) /passwd=(パスワード)×

パターン2 ログインマクロ(パスワード入力必要)

ログイン時にパスワードの入力が必要なシンプルなログインマクロのサンプルを作成しました。
パスワードをマクロにベタ書きするのはセキュリティ的にNGな場面でご使用ください。

以下の手順の通り、自身の環境に合わせて変更してログインマクロを作成してください。
 ①サンプルをコピーし、任意の名前(拡張子は.ttl)で保存します。
 ②『IPアドレス』にログインするサーバのIPアドレスを入力してください。(192.168.1.11など)
 ③『ユーザ名』にログインするサーバのユーザ名を入力してください。(rootなど)
 ④上の方にあるログインマクロ情報の部分は好きなように変更してください。行の先頭に『;』をつけることで、その行がコメントとして認識されます。

;######################################################################
; ログインマクロ情報
; 説明: ssh2 自動ログインマクロ(パスワード入力必要)
; 作成日: 2023/03/11
; 更新日: 2023/03/11
; 更新者: NUKO
;######################################################################

;#######################################################################
; 接続先情報
HOSTADDR = 'IPアドレス'
USERNAME = 'ユーザ名'
passwordbox 'パスワードを入力してください。' 'パスワード入力'
PASSWORD = inputstr

strcompare PASSWORD '' 
if result=0 then 
    messagebox 'パスワードが入力されませんでした。\nログインマクロを終了します。' 'パスワード未入力' 1
    end 
endif

;######################################################################

;######################################################################
; ssh接続処理
COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD
;######################################################################

; 接続
connect COMMAND

;; マクロ終了
end

ログインマクロ(パスワード入力必要)の解説

内容的には「ログインマクロ(パスワード入力不要)」とほとんど変わりありません。
違いはパスワードをログインマクロ実行時に入力させるため、passwordboxという文法を使用している点です。
passwordboxを利用することでマクロ実行時にパスワード入力を求めるメッセージボックスを表示させることができます。

teratermマクロパスワード確認

このメッセージボックスで入力されたパスワードは「inputstr」という変数に格納されます。この変数に格納されたパスワードを「PASSWORD」という変数に再度格納しなおしています。

他にはパスワードが入力されなかった場合はログインマクロを終了する判定処理を記載しています。
内容は、もし「PASSWORD」に格納されている文字列が空文字だったらログインマクロを終了するといったものです。

strcompare PASSWORD ”
if result=0 then
messagebox ‘パスワードが入力されませんでした。\nログインマクロを終了します。’ ‘パスワード未入力’ 1
end
endif

Teratermマクロ(.ttl)を実行する方法

TeraTermマクロ(.ttl)をダブルクリックすることで実行できます。
TeraTermマクロ(.ttl)を実行したことがない方は、ダブルクリックで実行しようとしてもうまくいかなかったと思います。
その場合は、以下の手順を実施してください。

STEP
実行したいファイル(.ttl)をダブルクリックする

自分で作成したTeraTermマクロ(.ttl)ファイルをダブルクリックします。

teratermログインマクロアイコン
STEP
その他のアプリをクリックする

表示された画面で『その他のアプリ』をクリックします。

その他アプリ
STEP
このPCで別のアプリを探す

『このPCで別のアプリを探す』をクリックします。
※今後も(.ttl)をダブルクリックした際にTeraTermマクロとして動作させたい場合は『常にこのアプリを使って.ttlファイルを開く』にチェックをいれてください。

このPCで別のアプリを探す
STEP
 ttpmacro.exeを選択する

①ttpmacro.exeを選択します。
※デフォルト設定でTeratermをインストールした方であれば『C:\Program Files (x86)\teraterm\ttpmacro.exe』にあるかと思います。
②『開く』をクリックします。

ttpmacro.exe
STEP
TeraTermマクロ(.ttl)の実行が完了します

Teratermが実行され、対象のサーバにログインできます。
※パターン1 ログインマクロ(パスワード入力不要)を実行した例です。

ログインマクロ実行後ログイン
よかったらシェアしてね!
  • URLをコピーしました!
目次