TTLとは何か?TTLの使い方など解説

TTLとは何か、皆さん知ってる?

こんばんは皆さん、ママのミーシャよ

今日はTTLについて解説してみるわ

目次は以下の通りよ

1.TTLとは何か

TTLというのは、「Tera Term」と呼ばれるソフトウェアの機能の一つの「Tera Term Macro」を使って接続することよ。「Tera Term Macro」とは、Tera Termで接続する時、自動でsshやポートフォワーディングの設定等やってくれる便利な機能のことよ。この「Tera Term Macro」を使うためのファイルをTTLファイルなんていうわね。ちなみにネットワーク用語の「TTL(通信時のパケットの生存時間)」とはまったく別物よ。ややこしいわよね。こっちの方は今は忘れてちょうだい。

2.TTLの使い方

次にTTLの使い方を解説するわ。足りないところは他のサイトやTera Term Macroについての文献をあさって補ってちょうだい。

まず前提条件を書くわ。以下の通りよ。

・Tera Termがインストールされていること

・SSH接続する接続先がいること

・SSH設定(公開鍵認証 or共通鍵認証)をしておくこと

前提条件の確認が済んだら次はTTLファイルを作成するわ。

これは拡張子が「.ttl」なだけのテキストファイルよ。

これを作って、Tera Term Macroで実行する設定をすると、TTLファイルをクリックするだけでSSH接続できるわ。

例で公開鍵認証で使用するTTLファイでの接続方法を以下に示すわ。

①任意のフォルダ(例:TTL-TEST)を作成する

②フォルダ内に2つのサブフォルダを作成する(例:pem,env)

③pemフォルダ内に秘密鍵(例:test.pem)を、envフォルダ内にTera Term設定ファイルを置く(例:test.INI)

④TTL-TESTフォルダ直下にテキストファイルを置く(例:test.ttl)※中身は空でファイル名だけ書く

⑤テキストファイルに以下の内容を記述する(コピペよりも自分でコーディングしたほうが理解しやすいわよ)※xxx.xxx.xxx.xxは接続するIPアドレスを入力、接続先のOSユーザーにtest-userがいない場合はOSユーザーを作るか、既存のユーザーに変更すること

HOSTIP1st='xxx.xxx.xxx.xxx'
USERNAME1st='test-user'
PEMKEY1st='\pem\test.pem'
;localportは他のポート番号と被らないものにすること
localport='100000'
;現在のディレクトを取得
getenv dir
;接続コマンドの組み立て
COMMAND=HOSTIP1st
strconcat COMMAND ':22 /ssh /2 /authpublickey /KR=UTF8 /KT=UTF8 /use='
strconcat COMMAND USERNAME1st
;秘密鍵を指定
strconcat COMMAND '/key file="'
strconcat COMMAND dir
strconcat COMMAND PEMKEY1st

;設定ファイルを指定
strconcat COMMAND '"/F="'
strconcat COMMAND dir
strconcat COMMAND '\env\test.INI'
strconcat COMMAND '"'


;connectへ渡す

connect COMMAND

;$を待つ
wait '$'

⑥作ったTTLファイルを右クリックし、「プログラムから開く」から「Tera Term Macro」を選択し、実行する

⑦接続先にSSH接続できたことを確認する

うまく接続できないときは、接続先にACLやファイアウォール

がかかっていないか確認したほうがいいわ。接続先がLinuxならsshd.configの設定も見てみなさい

3.TTLを使った開発環境の運用

次はTTLを使った開発環境の運用を説明するわ。

開発環境では、サーバの構築や設定変更等を行うことがよくあるわ。その際、実際に作業したことを証明するための証拠(エビデンス)を必ず取得するわ。この証拠(エビデンス)は作業ログだったりPC画面のスクリーンショット等あるけど、LinuxみたいなCUI画面のサーバは基本的に証拠(エビデンス)は作業ログよ。また構築作業等は複数人でやることが多いから作業ログを一元管理して、漏れがない運用にすることが大切よ。作業ログの一元管理の実装方式はいろいろあるけど、今回はTTLを使ったやり方を説明するわね。

開発環境の概要図は以下の通りよ。

image-1024x585 TTLとは何か?TTLの使い方など解説

作業PCから踏み台サーバにSSH接続し、踏み台サーバから各サーバ(サーバA,サーバB)にSSH接続することで開発環境内のサーバに入ることができるわ。

次にTTLを作成するわ。まずTTLを作成する場所を決めなさい。オススメはOneDrive等みんなで共有できる場所よ。場所が決まったら一つフォルダを作成しなさい。(例:開発環境接続TTL)

フォルダを作ったらその中に以下の3つのフォルダを作るのよ。

env ・・・TTL時の環境設定

log ・・・log格納先

pem ・・・鍵格納先(今回は踏み台サーバとは公開鍵認証、内部のサーバとはパスワード認証を用いるわ)

フォルダを作成したら下記のようなTTLを作成するわ。

HOSTIP1st='xxx.xxx.xxx.xxx'
USERNAME1st='test-user'
PEMKEY1st='\pem\test.pem'
HOSTIP2nd='yyy.yyy.yyy.yyy'
USERNAME2nd='test-user'
PASSWORD2nd='Passw0rd'
;localportは他のポート番号と被らないものにすること
localport='100000'
;ユーザ名取得
getenv 'USERNAME' localuser
;現在のディレクトを取得
getenv dir
;現在の日時を変数timeにセットする
getdate time "%y%m%d_%h%m%s"
;logディレクトリと設定
logdir='log'
foldercreate logdir

;踏み台サーバに接続
;①接続コマンドの組み立て
COMMAND=HOSTIP1st
strconcat COMMAND ':22 /ssh /2 /authpublickey /KR=UTF8 /KT=UTF8 /use='
strconcat COMMAND USERNAME1st
;秘密鍵を指定
strconcat COMMAND '/key file="'
strconcat COMMAND dir
strconcat COMMAND PEMKEY1st
;設定ファイルを指定
strconcat COMMAND '"/F="'
strconcat COMMAND dir
strconcat COMMAND '\env\test.INI'
strconcat COMMAND '"'
;起動時にログを開始
strconcat COMMAND '/L="'
strconcat COMMAND dir
strconcat COMMAND '\'
strconcat COMMAND logdir
strconcat COMMAND '\'
strconcat COMMAND HOSTIP2nd
strconcat COMMAND '_'
strconcat COMMAND time
strconcat COMMAND '_'
strconcat COMMAND localuser
strconcat COMMAND '.log"'

;connectへ渡す
connect COMMAND
;$を待つ
wait '$'

;②作業対象サーバへ接続
COMMAND2='ssh'
strconcat COMMAND2 USERNAME2nd 
strconcat COMMAND2 '@'
strconcat COMMAND2 HOSTIP2nd

sendln COMMAND2
;文字列「password」を待つ
wait 'password'
;パスワードを送信する
sendln PASSWORD2nd
;$を待つ
wait '$'
;rootになる
sendln 'sudo su -'
;マクロを終了する
end

このTTLを各サーバごと作るわ。今回でいうとサーバA用とサーバB用のTTLを2つ作るってことよ。

あとはHOSTIP1stを踏み台サーバのインターネット側のIP(今回でいうz.z.z.z)、HOSTIP2stを接続したいサーバのIP(今回でいうa.a.a.aもしくはb.b.b.b)に修正すれば完成よ。踏み台サーバと各サーバにはTTL接続用のユーザ(今回でいうtest-user)を作っておくことね。あとTTL内でsudo su -でrootに昇格しているからちゃんとsudo su -でrootになれるようサーバ側の設定をしておきなさい。

TTLを実行し、セッションを切ったときにさっき作ったlogディレクトリに作業ログが生成されるわ。これで一元管理できるようになったわね。

このサイトについて – Bar-エンジニアン (barengineern.com)

Share this content: