アクセス制限があるサーバーでもSSHポート転送でデータベースに楽々接続
ネットに公開されたウェブサーバーなどの場合には、セキュリティの関係で必要ないポートは閉じられていることが多いため、データベースのポートに直接接続することはできないことが多いです。ウェブサーバーであれば80番ポートは無条件で開いていますが、それ以外のポートは基本的には閉じられています。例外として、22番ポートは開いているものの、IPアドレスによるセキュリティをかけてアクセスを制限するのが普通です。
このような状況でデータベースのデータを見たり登録するには、SSHで接続した後Linuxのコマンドを入力するというコマンドライン上での操作を行うことになります。
これはとても面倒くさい作業です。
コマンドラインでDBのデータを見る場合には、いちいちデータベースに接続するコマンドを入力する必要があったり、データを見ようとしてもデータの長さに応じてカラムの幅が変わってしまって見にくくなってしまう、といった具合です。作業効率がとても悪いのです。
自分のパソコン内に構築したデータベースや社内の開発サーバーなどであれば、セキュリティを気にする必要があまりないので、データの登録や検索にはpgAdmin(PostgreSQL)やMySQL Workbenchなどのクライアントを使って操作できます。これらのクライアントソフトを使えば、グラフィカルに作業ができるので、操作がしやすく結果も見やすいので作業がはかどります。
今まで公開サーバーでデータベースの変更や更新を行う際には、上記のようにいちいちTeratermで接続してコマンドをたたいていたのですが、最近TeratermのSSHのポート転送という機能を知り、このような不便さから解放されました。
SSHのポート転送機能なら、ポートが閉じていても接続できる
TeratermのSSHポート転送機能を使うと、公開サーバーのポートをローカルマシンに転送することができます。転送されたポートは公開サーバーのポートにつながっていますので、ローカルマシン上に転送されたポートに接続するだけで、公開サーバーのデータベースに接続し、クライアントソフトを使ってデータベースの操作ができるようになります。
そのやり方をご紹介します。
1.まず、Teratermを起動し本番サーバーに接続します。
2.メニュー→設定から、SSH転送を選択します。
3.追加ボタンを押します。
4.ここが肝になる部分です。
ローカルのポートには、ローカルマシンのどのポート番号に転送するかを入力します。この場合はPostgreSQLのポート番号を入力していますが、何番でも大丈夫です。
リモート側ホストは、ローカルアドレスを入力します。
ポートの箇所はリモートマシンのどのポートにつなげるかを指定します。サーバー側でPostgreSQLが使っているポート番号の5432番を入力します。
5.OKボタンを押してウィンドウを閉じます。
これで準備が完了しました。
とても簡単ですよね。
あとは、データベースのクライアントソフトを立ち上げて、4で設定したローカルアドレスのポートに接続してみてください。公開サーバーのデータベースにアクセスできるようになっています。
コマンドラインだと見づらかったり、操作しにくかったりなど制約が出てきますが、これでクライアントツールを使って操作できるようになるので、作業がしやすくなりますよ。
関連記事
1.サーバーを踏み台にして別のサーバーに接続する方法