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