秘密鍵をローカルに!Tera TermでSSH転送(ポートフォワーディング)を使った踏み台サーバー先へのSSHログイン方法(マクロ・鍵認証)
秘密鍵をサーバーへ保存したくない!
特に管理者ユーザーの秘密鍵は絶対にローカルに置こう。
Tera Termでもそれが実現できるので説明します。
1、実現したいこと
Tera Termの「SSH転送」機能を使えば実現できます。
秘密鍵はサーバーへ保存するものではない。
もしハッキングされたら全サーバーがお終いです。
そのため、絶対に自宅PCに保存したい。
ちょっと面倒になりますが、
マクロを使えば苦にはならないので是非作ってみてください。
2、踏み台サーバーへログインして転送設定をする
Tera Termで今まで通り普通に踏み台サーバーへログインしてください。
それから下図のように設定していきます。
「ローカルのポート」は自宅PCで使うポートのことです。
使っていないポートなら何でもいい。
「リモート側ホスト」は「WEBサーバーのIPアドレス」です。
「ポート」は「WEBサーバーのSSHログインで使うポート」です。
WEBサーバーが複数ある場合は、同じように作成していきます。
「ローカルのポート」はそれぞれ違うものにしてください。
「設定の保存」をクリックすると「TERATERM.INI」というファイルを保存できます。
これを後に絶対パスで指定して使います。
ここでTera Termは終了してください。
3、Tera Termのマクロを作成する
それぞれテキストエディタにコピペしてください。
踏み台サーバーログイン用のマクロ
※自分の環境に合わせて変更ください。
※鍵にパスフレーズを設定していない場合、
パスワード系の行は削除しても大丈夫です。
HOSTADDR = 'xxx.xxx.xx.xx'
USERNAME = 'xxxx'
PORTNO = '10022'
KEY_FILE = 'E:\ssh接続\踏み台サーバー\id_ed25519'
INI_FILE = 'E:\ssh接続\TERATERM.INI'
;パスフレーズを保存するファイルのパス。自動で作成します。
PASSFILE = 'E:\ssh接続\humidaipass.dat'
getpassword PASSFILE USERNAME PASSWORD
COMMAND = HOSTADDR
strconcat COMMAND ':'
strconcat COMMAND PORTNO
strconcat COMMAND ' /ssh /2 /auth=publickey /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD
strconcat COMMAND ' /keyfile='
strconcat COMMAND KEY_FILE
strconcat COMMAND ' /F='
strconcat COMMAND INI_FILE
connect COMMAND
end
ここは普通に踏み台サーバーのIP・ポート等を入れてください。
いつも通りのログインマクロですが、
「TERATERM.INI」を読み込んでSSH転送設定を取得している点が違います。
WEBサーバー用のログインマクロ
HOSTADDR = 'localhost'
USERNAME = 'xxxx'
PORTNO = '11111'
KEY_FILE = 'E:\ssh接続\WEBサーバー\id_ed25519'
;パスフレーズを保存するファイルのパス。自動で作成します。
PASSFILE = 'E:\ssh接続\web1pass.dat'
getpassword PASSFILE USERNAME PASSWORD
COMMAND = HOSTADDR
strconcat COMMAND ':'
strconcat COMMAND PORTNO
strconcat COMMAND ' /ssh /2 /auth=publickey /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD
strconcat COMMAND ' /keyfile='
strconcat COMMAND KEY_FILE
connect COMMAND
end
ホスト名は「localhost」のままで大丈夫です。
ポートは転送設定の際に作った「ローカルポート」を入れます。
その他はWEBサーバーへログインするユーザー名・秘密鍵です。
--
それぞれ保存したら、
「踏み台サーバー」→「WEBサーバー」の順番でマクロを起動してください。
このマクロで「踏み台サーバー」へログインしていないと、
その先の「WEBサーバー」へはログイン(転送)できません。
初回のみ「パスフレーズ」の入力画面が表れます。
設定していない場合は空のままOKを押してください。
必ず踏み台サーバーのログイン・起動を保つのが必要になるのが難点ですが、
これで秘密鍵を踏み台サーバーへ保存することなく安全にWEBサーバーへログインできます。
完!