前回の記事では、TeraTermのSSH転送(ポートフォワード)機能を利用した手動でのSSH公開鍵認証の設定・手順についてご紹介しました。
⇒ TeraTerm SSH転送(ポートフォワード)機能を利用した多段接続

しかし接続の都度、ユーザ名等の情報を入力するのは面倒ですよね。(まあ、いつものパターンです!)

そこで、ここでは前回手動で行った公開鍵認証での接続部分を、TeraTermのマクロ機能で実現したいと思います。

SSH転送(ポートフォワード)をマクロで

マクロの前提条件として以下の設定等が必要になります。
ポートフォワードの設定は事前に行っておき、コンフィグを保存しておく。
作業対象サーバのIPアドレス・接続先ポート「22」(SSHの待ち受けポート)
テラタームの待ち受けポートは「10022」
SSHポート転送設定画面

この辺りは前回の記事を確認し、設定を行なってみてください。
⇒ 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に保存している鍵を利用して踏み台サーバ経由の接続が可能となります。まあ機会があれば利用してみてください。何かの参考にでもなれば幸いです。