TeraTermにマクロでログインする方法(パスワード認証・公開鍵認証)

TTL コマンドリファレンス(マクロで使用可能な関数)
https://ttssh2.osdn.jp/manual/ja/macro/command/

パスワード認証
公開鍵認証
接続後にコマンドを実行する方法
接続後にrootユーザーになる方法
踏み台サーバにログイン後に別のサーバにログインする方法
踏み台サーバからのログイン先が複数ある場合

コマンドオプション
プロトコルの指定
認証方式の指定
パスワードの指定

基本的には、
『strconcat』関数でコマンドオプションの文字列を組み立て
『connect』関数にコマンドオプションを送るようなテキストファイルを
拡張子.ttlで保存し実行します。

パスワード認証

コマンドオプションは次のようになります。

【IPアドレス】:【ポート番号】 /ssh /2 /auth=password /user=【ユーザー名】 /passwd=【パスワード】
;=====================================================================
; 接続情報
HOSTNAME = '192.168.1.10'
HOSTPORT = '22'
USERNAME = 'username'
PASSWORD = 'password'
;=====================================================================

; コマンドオプション組立て
COMMAND = HOSTNAME
strconcat COMMAND ':'
strconcat COMMAND HOSTPORT
strconcat COMMAND ' /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD

; 接続
connect COMMAND

end

公開鍵認証

コマンドオプションは次のようになります。

【IPアドレス】:【ポート番号】 /ssh /2 /auth=publickey /user=【ユーザー名】 /keyfile=【鍵ファイルのパス】
;=====================================================================
; 接続情報
HOSTNAME = '192.168.1.10'
HOSTPORT = '22'
USERNAME = 'username'
KEYFILE  = 'C:/〜〜/private_key'
;=====================================================================

; コマンドオプション組立て
COMMAND = HOSTADDR
strconcat COMMAND ':'
strconcat COMMAND HOSTPORT
strconcat COMMAND ' /ssh /2 /auth=publickey /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /keyfile='
strconcat COMMAND KEYFILE

; 接続
connect COMMAND

end

鍵ファイルとマクロファイルが同じフォルダにある場合
作業ディレクトリを変更することで、鍵ファイルの指定をファイル名にすることができます。

;=====================================================================
; 接続情報
HOSTNAME = '192.168.1.10'
HOSTPORT = '22'
USERNAME = 'username'
KEYFILE  = 'private_key'
;=====================================================================

; 処理ディレクトリを現在ディレクトリに変更
getdir DIR
setdir DIR

; コマンドオプション組立て
COMMAND = HOSTADDR
strconcat COMMAND ':'
strconcat COMMAND HOSTPORT
strconcat COMMAND ' /ssh /2 /auth=publickey /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /keyfile='
strconcat COMMAND KEYFILE

; 接続
connect COMMAND

end

getdirで現在のディレクトリのパスを取得して、setdirで作業ディレクトリを変更してます。

接続後にコマンドを実行する方法

接続に成功すると、コマンド入力待ちの状態になります。

一般ユーザーでログインした場合

[【ユーザー名】@【ホスト名】 【パス】]$

rootユーザーでログインした場合

[【ユーザー名】@【ホスト名】 【パス】]#

この『$』や『#』の表示を待って(wait)、コマンドを実行します(sendln)。

一般ユーザーでログインした場合

;------------------------------
; ログイン部分
;------------------------------

; 接続後処理
wait '$'

; 実行するコマンド
sendln '【コマンド】'

end

rootユーザーでログインした場合

;------------------------------
; ログイン部分
;------------------------------

; 接続後処理
wait '#'

; 実行するコマンド
sendln '【コマンド】'

end

接続後にrootユーザーになる方法

;=====================================================================
; 接続情報
HOSTNAME = '192.168.1.10'
HOSTPORT = '22'
USERNAME = 'username'
PASSWORD = 'password'
ROOTPASSWORD = 'rootpassword'
;=====================================================================

; コマンドオプション組立て
COMMAND = HOSTNAME
strconcat COMMAND ':'
strconcat COMMAND HOSTPORT
strconcat COMMAND ' /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD

; 接続
connect COMMAND

wait '$'
sendln 'su -'
wait ':'
sendln ROOTPASSWORD

end

踏み台サーバにログイン後に別のサーバにログインする方法

;=====================================================================
; 接続情報
HOSTNAME = '192.168.1.10'
HOSTPORT = '22'
USERNAME = 'username'
PASSWORD = 'password'

; 別サーバの接続情報
PROJECTSSH = 'user@other-server'
PROJECTPASSWORD = 'rootpassword'
;=====================================================================

; コマンドオプション組立て
COMMAND = HOSTNAME
strconcat COMMAND ':'
strconcat COMMAND HOSTPORT
strconcat COMMAND ' /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD

; 接続
connect COMMAND

wait '$'

; 別サーバへSSH
SSHCOMMAND = 'ssh '
strconcat SSHCOMMAND PROJECTSSH
sendln SSHCOMMAND

wait ':'
sendln  PROJECTPASSWORD

end

別サーバへ鍵認証がされている場合は、別サーバのパスワード部分は不要になります。

;=====================================================================
; 接続情報
HOSTNAME = '192.168.1.10'
HOSTPORT = '22'
USERNAME = 'username'
PASSWORD = 'password'

; 別サーバの接続情報
PROJECTSSH = 'user@other-server'
;=====================================================================

; コマンドオプション組立て
COMMAND = HOSTNAME
strconcat COMMAND ':'
strconcat COMMAND HOSTPORT
strconcat COMMAND ' /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD

; 接続
connect COMMAND

wait '$'

; 別サーバへSSH
SSHCOMMAND = 'ssh '
strconcat SSHCOMMAND PROJECTSSH
sendln SSHCOMMAND

end

踏み台サーバからのログイン先が複数ある場合

踏み台サーバの接続部分を1つのマクロファイルで共通化して『include』で読み込むことができます。

踏み台サーバの接続マクロ.ttl

;=====================================================================
; 接続情報
HOSTNAME = '192.168.1.10'
HOSTPORT = '22'
USERNAME = 'username'
PASSWORD = 'password'
;=====================================================================

; コマンドオプション組立て
COMMAND = HOSTNAME
strconcat COMMAND ':'
strconcat COMMAND HOSTPORT
strconcat COMMAND ' /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD

; 接続
connect COMMAND

踏み台サーバからのログイン先.ttl

;=====================================================================
; 別サーバの接続情報
PROJECTSSH = 'user@other-server'
;=====================================================================

; 処理ディレクトリを現在ディレクトリに変更
getdir DIR
setdir DIR

; 接続
include '踏み台サーバの接続マクロ.ttl'

; 別サーバへSSH
SSHCOMMAND = 'ssh '
strconcat SSHCOMMAND PROJECTSSH
sendln SSHCOMMAND

end

コマンドオプション

プロトコルの指定

【IPアドレス】:【ポート番号】 /ssh /2 /auth=password /user=【ユーザー名】 /passwd=【パスワード】
オプションプロトコル
/sshSSHバージョンを指定せずにSSH接続
/ssh /1SSH1
/ssh /2SSH2
/nossh /T=1Telnet

認証方式の指定

【IPアドレス】:【ポート番号】 /ssh /2 /auth=password /user=【ユーザー名】 /passwd=【パスワード】
オプション認証方式
/auth=passwordパスワード認証
/auth=publickey公開鍵認証
/auth=challengeチャレンジレスポンス認証
/auth=pageantPageant認証

パスワードの指定

【IPアドレス】:【ポート番号】 /ssh /2 /auth=password /user=【ユーザー名】 /passwd=【パスワード】
オプションパスワード
/passwd=【パスワード】パスワードはマクロファイルに記載されます
/ask4passwdポップアップでパスワードの入力を促します

テキストファイルに記載されたパスワードを使用することもできます。

PASSFILE = 'filepath'

; パスワード取得
fileopen fhandle PASSFILE 0
filereadln fhandle PASSWORD
fileclose fhandle

関連記事

スポンサーリンク

ThickBox

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る