doudonn WEB制作やサーバーの話とかいろいろ

秘密鍵をローカルに!Tera TermでSSH転送(ポートフォワーディング)を使った踏み台サーバー先へのSSHログイン方法(マクロ・鍵認証)

doudonn 更新日:
秘密鍵をローカルに!Tera TermでSSH転送(ポートフォワーディング)を使った踏み台サーバー先へのSSHログイン方法(マクロ・鍵認証)

秘密鍵をサーバーへ保存したくない!

特に管理者ユーザーの秘密鍵は絶対にローカルに置こう。
Tera Termでもそれが実現できるので説明します。

1、実現したいこと

TeraTermで秘密鍵を自宅PC(ローカル)だけに保存して踏み台サーバー先のWEBサーバーへログインする説明図

TeraTermのSSH転送(ポートフォワーディング)機能での踏み台サーバー経由でSSHログインできる

Tera Termの「SSH転送」機能を使えば実現できます。

秘密鍵はサーバーへ保存するものではない。
もしハッキングされたら全サーバーがお終いです。
そのため、絶対に自宅PCに保存したい。

ちょっと面倒になりますが、
マクロを使えば苦にはならないので是非作ってみてください。

2、踏み台サーバーへログインして転送設定をする

Tera Termで今まで通り普通に踏み台サーバーへログインしてください。
それから下図のように設定していきます。

TeraTermのSSH転送(ポートフォワーディング)機能での踏み台サーバー経由SSHログイン方法

TeraTermのSSH転送(ポートフォワーディング)機能での踏み台サーバー経由SSHログイン方法

「ローカルのポート」は自宅PCで使うポートのことです。
使っていないポートなら何でもいい。

「リモート側ホスト」は「WEBサーバーのIPアドレス」です。

「ポート」は「WEBサーバーのSSHログインで使うポート」です。

TeraTermのSSH転送(ポートフォワーディング)機能での踏み台サーバー経由SSHログイン方法

WEBサーバーが複数ある場合は、同じように作成していきます。
「ローカルのポート」はそれぞれ違うものにしてください。

TeraTermのSSH転送(ポートフォワーディング)機能での踏み台サーバー経由SSHログイン方法

「設定の保存」をクリックすると「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サーバーへログインできます。

完!

--

サーバーの関連記事

記事一覧はこちら:サーバー

管理人について
doudonn
名前:doudonn(どうどん)
ひたすらWEB制作な人。
一応社長です。音ゲー好き

<Twitterはこちら>
ゲーム垢
WEB制作垢
お知らせ

2022年11月30日に全記事削除しました。
まだ再開に向け作りかけ。


無駄にページ表示速度にこだわってます。

役立ちサイト
wiki
© 2022-2023 doudonn All Rights Reserved.