Sequel Pro で、SSH Port Forwarding を利用してのDBへの接続をよく行う。

構成としては、下記みたいなオーソドックスな構成。 (Bastionのport: 43306を、DBサーバーのport: 3306にバインド。)

ssh -f -N -C -L 43306:localhost:3306 yyoshiki41@database.server -p 22

ふと、Sequel の接続方法が気になったのでみてみた。

上記のような設定に対して、

ssh-agentを起動して、クライアントマシンのport: 56430をBastionのport: 43306にバインドしている。

$ ps aux | grep [s]sh
yyoshiki41        31480   0.0  0.1  2473624   5248   ??  U    10:41PM   0:00.04 /usr/bin/ssh-agent -l
yyoshiki41        31479   0.0  0.1  2464476   4204   ??  S    10:41PM   0:00.04 /usr/bin/ssh -v -N -S none -o ControlMaster=no -o ExitOnForwardFailure=yes -o ConnectTimeout=10 -o NumberOfPasswordPrompts=3 -o TCPKeepAlive=no -o ServerAliveInterval=60 -o ServerAliveCountMax=1 -p 22 yyoshiki41@bastion -L 56430:127.0.0.1:43306

もちろん、Sequelで接続した状態で、下記のようにMySQLクライアントで接続も可能。

$ mysql -uadmin -p -h127.0.0.1 --port=56430
Enter password:

mysql>

cf. Set up an SSH Tunnel