この記事を読むと・・・ |
---|
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
を利用することでマクロ実行時にパスワード入力を求めるメッセージボックスを表示させることができます。
このメッセージボックスで入力されたパスワードは「inputstr」という変数に格納されます。この変数に格納されたパスワードを「PASSWORD」という変数に再度格納しなおしています。
他にはパスワードが入力されなかった場合はログインマクロを終了する判定処理を記載しています。
内容は、もし「PASSWORD」に格納されている文字列が空文字だったらログインマクロを終了するといったものです。
strcompare PASSWORD ”
if result=0 then
messagebox ‘パスワードが入力されませんでした。\nログインマクロを終了します。’ ‘パスワード未入力’ 1
end
endif
Teratermマクロ(.ttl)を実行する方法
TeraTermマクロ(.ttl)をダブルクリックすることで実行できます。
TeraTermマクロ(.ttl)を実行したことがない方は、ダブルクリックで実行しようとしてもうまくいかなかったと思います。
その場合は、以下の手順を実施してください。
自分で作成したTeraTermマクロ(.ttl)ファイルをダブルクリックします。
表示された画面で『その他のアプリ』をクリックします。
『このPCで別のアプリを探す』をクリックします。
※今後も(.ttl)をダブルクリックした際にTeraTermマクロとして動作させたい場合は『常にこのアプリを使って.ttlファイルを開く』にチェックをいれてください。
①ttpmacro.exeを選択します。
※デフォルト設定でTeratermをインストールした方であれば『C:\Program Files (x86)\teraterm\ttpmacro.exe』にあるかと思います。
②『開く』をクリックします。
Teratermが実行され、対象のサーバにログインできます。
※パターン1 ログインマクロ(パスワード入力不要)を実行した例です。