前回の記事では、TeraTermのSSH転送(ポートフォワード)機能を利用した手動でのSSH公開鍵認証の設定・手順についてご紹介しました。
⇒ TeraTerm SSH転送(ポートフォワード)機能を利用した多段接続
しかし接続の都度、ユーザ名等の情報を入力するのは面倒ですよね。(まあ、いつものパターンです!)
そこで、ここでは前回手動で行った公開鍵認証での接続部分を、TeraTermのマクロ機能で実現したいと思います。
マクロの前提条件として以下の設定等が必要になります。
ポートフォワードの設定は事前に行っておき、コンフィグを保存しておく。
作業対象サーバのIPアドレス・接続先ポート「22」(SSHの待ち受けポート)
テラタームの待ち受けポートは「10022」
この辺りは前回の記事を確認し、設定を行なってみてください。
⇒ TeraTerm SSH転送(ポートフォワード)機能を利用した多段接続
それでは早速マクロの中身を眺めてみましょう。
SSH多段接続&公開鍵認証自動ログインマクロ
;============================================== ; Filename : ssh_connect-16.ttl ; Description : SSH Auto login ; Author : JUNZOU ; Created : 2014/03/29 ; modified : ;============================================== ;; 踏み台・作業対象サーバ/ユーザ名/パスワード設定 HOSTIP1st = '踏み台サーバIPアドレス' USERNAME1st = '踏み台サーバ接続用ユーザ名' PASSWORD1st = '踏み台サーバ接続用パスワード' HOSTIP2nd = '127.0.0.1' USERNAME2nd = '作業対象サーバ接続用ユーザ名' PASSWORD2nd = '作業対象サーバ接続用パスワード' KEY_FILE = '秘密鍵のフルパス' ;============================================== ;; 踏み台サーバへSSH接続 ;; ①接続用コマンド組立て COMMAND = HOSTIP1st strconcat COMMAND ':22 /ssh /2 /auth=password /user=' strconcat COMMAND USERNAME1st strconcat COMMAND ' /passwd=' strconcat COMMAND PASSWORD1st ;; ②踏み台サーバへ接続 connect COMMAND ;; ③踏み台サーバへのリンクを切断(セッションは維持したままです) unlink ;; 作業対象サーバへSSH公開鍵認証接続 ;; ④接続用コマンド組み立て COMMAND = HOSTIP2nd strconcat COMMAND ':10022 /ssh /auth=publickey /user=' strconcat COMMAND USERNAME strconcat COMMAND ' /passwd=' strconcat COMMAND PASSWORD strconcat COMMAND ' /keyfile=' strconcat COMMAND KEY_FILE ;; ⑤作業対象サーバへ接続 connect COMMAND ;; ⑥マクロ終了 end
マクロの解説
まあ難しい所は一切ありませんね。
このマクロのツボは、項番③の部分で「unlink」を使用する事です。
unlink:現在のTeraTermウインドウとマクロ間のリンクを断つ
一度踏み台サーバに接続し、SSH転送(ポートフォワード)が実施できる準備を行います。そこで接続されている踏み台サーバへのリンクを「unlink」で切り(セッションは維持されたままです。あくまでTeraTermとのリンクを切断します)、そこで別に新しいセッションを開いて、作業対象サーバに公開鍵認証で接続しようといったマクロになります。
公開鍵でパスワードなんか設定していなければ、その部分はコメントアウトしてご利用ください。
また一点だけ注意点があります!
踏み台サーバのセッションと作業用対象サーバの2セッション(画面が2つ)起動します。踏み台サーバのセッションを切断すると、作業対象サーバへのセッションも切断されますのでご注意ください。
おわりに
まあ、非常に簡単でしたね。
このマクロを使用すると踏み台サーバに鍵を配置せずに、自PCに保存している鍵を利用して踏み台サーバ経由の接続が可能となります。まあ機会があれば利用してみてください。何かの参考にでもなれば幸いです。