エンジニャーリング

技術ときどきネコ

セッションマネージャーのポートフォワーディング(続編)

前の記事でポートフォーワーディングについて説明した taiyakikuroann.hatenablog.com

のですが、このやり方だと複数アカウントを扱う場合にすごくやりづらい。
悩みの種だったのですが、良さげな解消できそうな方法を見つけた!
ポートフォーワーディング自体の設定を ~/.ssh/config に書いてしまおうってことでやってみた。

~/.ssh/config にこのようにポートフォーワーディングの設定を書く

Host example_tunnel 
  HostName       i-xxxxxxxxxxxx
  User           ec2-user
  LocalForward   9999 [RDSのエンドポイント]:3306
  ProxyCommand   sh -c "aws --profile=example1 ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
  IdentityFile   [鍵ファイルを置いたところのパス]

HostNameにはインスタンスのIDを指定する
LocalForwardのポートとか転送先は用途に応じて変更する
ProxyCommandの--profile=example1はAWSのプロファイル名を指定

接続するときはこれでOK!

% ssh example_tunnel

サクッとできた。
この設定をアカウント毎に追加すれば複数アカウントでも管理可能!
前回の書き方だと書き直しが発生するので、この使い方のほうがおすすめ。