sshゲートウェイを作る

サーバがいくつかあるLAN内にインタネットから接続したい。それぞれのサーバがグローバルアドレスを持っているわけでもなく、NATで外部からアクセスできるわけでもないので、sshをインタネットから受け付けるサーバを一つ作り、それをゲートウェイにして各サーバへ接続する環境を作成。
ただし、接続先は複数あってクライアントで指定したい。こんな感じ。

特定のサーバへフォワードするだけだったら、単純にauthorized_keysにサーバ名を書いてsshで飛ばせばいいんだけど。
複数のサーバに接続したいので、$SSH_ORIGINAL_COMMANDをホスト名として解釈することにしました。

ゲートウェイ上のアカウントに強制コマンドを指定する

$HOME/.authorized_keysに強制コマンドでsshを指定する。こんな。

command="ssh -l アカウント名 $SSH_ORIGINAL_COMMAND" …(公開鍵…

クライアントからはこんな感じで

$ ssh -t gateway_address dest_address

仮想端末を強制的に作ってるところがちょっとださい。
文法的にはおかしいけど用は足りる。