SSH接続の効率化

この前からTeraTermMenuの古い日本語版をカスタマイズしてコンパイルし使っていましたが、UTF版TeraTermには英語版の最新TeraTerm Menuが入ってました。それだけなら特に他の方法でやってみようという気にならなかったのですが、多段ログインのマクロを組んでいるときにヘルプを見たら…。普通にマクロの拡張子をTeraTermMacroに登録して利用できるようです。つまりマクロファイルダブルクリックでOKということなのでこれをスタートメニューとかクイック起動バーに登録すればTeraTermMenuは使わなくても良かったということです。

まずはwheelグループに属しているユーザでログインしsuでルートになる方法
username = ‘username’
hostname = ‘192.168.100.100’
password = ‘userpassword’
supass = ‘supassword’
ini = ‘black_euc.ini’
timeout = 30
msg = hostname
strconcat msg ‘:22 /ssh /auth=password ‘
strconcat msg ‘/user=’
strconcat msg username
strconcat msg ‘ /passwd=’
strconcat msg password
strconcat msg ‘ /f=’
strconcat msg ini
connect msg
pause 2
sendln ‘su -‘
wait ‘Password:’
sendln supass

iniの項目でカスタマイズしたiniファイルを定義します。これはサーバーによって扱っているロケールの文字コードが違う為文字コード別にiniファイルを作成しています。あとはDevelop/Staging/Publicで背景色と文字色を変えてサーバの取り違いミスを予防します。接続の後のpauseはサーバーの応答を待たずにsuコマンドを発行しないようにマクロ側を一時停止します。その後のwaitはサーバーからの応答を待ってパスワードを送信します。timeoutはwait用の値です。

上記はパスワード認証用ですが、次は公開鍵を使って1台目のサーバに接続しさらに他のサーバへsshへログインする方法です。(これはグローバルIPを持たないデータベース専用サーバ等でよく利用します)

username = ‘username’
hostname = ‘192.168.100.100’
password = ‘userpass’
key = ‘id_rsa’
rlhost = ‘192.168.100.101’
rluser = ‘rluser’
rlpass = ‘rlpass’
ini = ‘black_euc.ini’
msg = hostname
strconcat msg ‘:22 /ssh /auth=publickey ‘
strconcat msg ‘/user=’
strconcat msg username
strconcat msg ‘ /passwd=’
strconcat msg password
strconcat msg ‘ /keyfile=’
strconcat msg key
strconcat msg ‘ /f=’
strconcat msg ini
connect msg
pause 2

msg = ‘ssh -l ‘
strconcat msg rluser
strconcat msg ‘ ‘
strconcat msg rlhost
sendln msg
wait ‘Password:’
sendln rlpass

そして作成したマクロファイルをダブルクリックで起動できるように定義します。

WindowsXPでの登録方法
1.エクスプローラーの[ツール(T)]-[フォルダ オプション(O)]からファイルの種類タブをクリック。
2.[新規(N)]をクリック。
3.ファイル拡張子(F)の欄に「.ttl」と入力して[OK]をクリック
4.TTLファイルが登録されたら、「拡張子’TTL’の詳細」グループ内の[詳細設定(V)]ボタンをクリック。
5.一番上のテキスト入力は拡張子の種類に入る説明なので「Tera Term macro files
」と入力。
6.[アイコンの変更(I)]をクリックして好きなアイコンを選択。TeraTerm系のアイコンにしたい場合は[参照(B)]よりTeraTermのインストールされているフォルダへ参照しTeraterm実行ファイルの中から選択する。
7.[新規(N)]をクリックしアクションに「接続」と入力。実行するアプリーションは[参照(R)]でTeraTermマクロ実行ファイルを選択。この時%1が追加で挿入されるがダブルクォートで囲んで[OK]をクリック。
例) “C:Program Filesteratermttermpro.exe” “%1”
8.ついでに[新規(N)]でもうひとつ登録。アクションは「編集」でアプリケーションはTTLEditを選択する。
9.既定は「接続」になっていることを確認して[OK]をクリック。最後に[閉じる]をクリックして終了。

TTLEditはTeraTermマクロに特化したエディタで色分けもされているのでとても便利です。