10
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SSHでログインできるサーバのMySQLにしれっとログインする

Posted at

あるサーバへのMySQLログインがリモートでは出来なくって,SSHアクセスしてからMySQLログインしていたのだけれどこれが面倒だったので あたかもリモートアクセスしているかのようにしれっとログイン 出来る方法を調べてみました。

調べてみるとSSHトンネル?というものを設定するとそれっぽい事が可能?みたいなので試してみました。

SSHアクセスの設定

.ssh/configの準備

アクセス元環境に以下のような.ssh/configを作成しておきます。

Host target_server_sql
  HostName 192.168.11.101
  Port 22
  User target_server_user
  IdentityFile ~/.ssh/id_rsa
  GatewayPorts yes
  LocalForward 3307 localhost:3306  # 3307は,アクセス元の空いているポートを。3306のところは,アクセス先(target_server)のMySQLポートを。

基本的にはアクセス先(target_server側)の情報をババッと書いていきます。
LocalForwardの所だけ,アクセス元の空いているポートを記述する箇所があるので注意です。

SSHトンネルを掘る

$ ssh -f -N target_server_sql

しれっとアクセスする

$ mysql -utarget_server_mysql_user -ptarget_server_mysql_password --port 3307 --host 127.0.0.1;

アクセス先(target_server側)のMySQLログインユーザ名やらパスワードやらを入力するのはなんとなくわかると思うけれど,ポートの指定は~/.ssh/configで設定した 自分の空きポート を指定します。
また,ホストも 自分自身 です。

トンネルを潰す

$ ps aux | grep target_server_sql
hoge 26564  0.0  0.0  59836  1252 ?        Ss   0:00   0:00 ssh -f -N target_server_sql

$ kill 26564

使わなくなったり,指定したポートを変えたくなったりしたらとりあえずpsで確認してkillでOK。

10
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?