SSHトンネルで開発環境からリモートのMySQLホストにつないでセキュアにデバッグ

sshホストがフォワード先


ローカルホスト:13306にバインドして、sshリモートホストmysql.host:22にssh接続し、localhost:3306にループバックポートフォワードする


ssh -N -L 13306:localhost:3306 -p 22 -i ./id-rsa.pem user@mysql.host

踏み台sshホスト経由


  • 直にssh接続できないホスト(RDSインスタンス)の場合
  • データベースサーバーがインターネットフェイス非公開の場合

ローカルホスト:13306にバインドして、sshリモートホストbation.host:22にssh接続し、mysql.host:3306にポートフォワードしている


ssh -N -L 13306:mysql.host:3306 -p 22 -i ./id-rsa.pem user@bation.host

前提としてbation.host から mysql.hostへファイアウォールでインバウンド許可していること
フォワード先のホストがインターナルネットワークのみ許可している場合、インターネットフェイスなDNSアクセスだとグローバルIPなのでファイアウォールで弾かれる(挙動としては応答なしで延々と捕まる・固まる)。

SSHコマンド

ssh
	-N # リモートコマンドを実行しない=ターミナルを開かない=トンネル専用
	-L {ローカルホストのバインドポート}:{フォーワード先のホスト}:{フォワード先のポート}
	-p {sshホストのポート} 
	-i {ssh鍵ファイル}
	{ユーザ名}@{sshホスト}

フォーワード先のホストsshホストからみたネットワーク名


Share:

0 Comments:

コメントを投稿