LoginSignup
18
17

More than 3 years have passed since last update.

ssh踏み台サーバ越しに、いろんなサービスにアクセスする方法集

Last updated at Posted at 2016-11-04

背景

こんな感じで、sshで接続できるのは、とあるサーバが1台だけで
その先にプライベートネットワーク上では、アクセスできるmysqlに繋ぎたいときどうすれば良いかの話です。
Network diagram (1).png

方法

Windowsの場合

Tera Termにすばらしい機能がついてます!
SSHポート転送!!
SSH転送.png

Web Serverにsshでログインした状態で、このSSHポート転送でローカルのポートを画像のように設定します。

これにより、mysql -h 127.0.0.1 -P 13306 -u root -pで接続できるようになります。
これだけだと、a5m2とかのsshトンネル接続で良いじゃないかと思われると思います。

私の場合、cakephpから、sshトネリング接続するのが困難だったのでこの手を使いました。

レプリケーションしている場合に
13306は、マスターの3306へ
23306は、スレーブの3306へ
という事が可能になるのです。

ちなみに、Tera Termの設定を保存しておかないと毎回設定する羽目になります。

Macの場合

いろいろやった結果、Coccinellidaが一番でした。
http://coccinellida.sourceforge.net/
https://sourceforge.net/projects/coccinellida/files/

brewでもインストール可能です。
http://macappstore.org/coccinellida/

brew cask install coccinellida

トンネルを設定と接続

1.上部メニューの小さいてんとう虫をクリックすると「Preferences…」というのがあるので、それを開きます。

2.Tunnelタブを開きます。

3.Addボタンでトンネル設定を追加します。

4.Generalではトンネルになるホストの設定をします。
Name: わかりやすい任意の名前(xxxトンネルとか)
Host: ホスト名
Port: 22 (他のポート指定がある場合はそのポート番号)
User: ユーザー名
Password: パスワード
Identity: 秘密鍵を選択します。

5.Port Forwardingでは、トンネルを介して接続する本命のサーバーの設定をします。Addボタンで追加します。
Type: localのまま
Local Port: 13306 (任意のポートでもいい)
Local Host: localhost
Remote Host: 10.102.55.203(本命のサーバーのIP、ホスト名)
Remote Port: 3306 (他のポート指定がある場合はそのポート番号)

これでsave(保存)。
再びてんとう虫をクリックすると、追加したサーバー名が出ているので、選択して接続します。
パスワードを要求されるので、入力して接続します。
接続成功しても何も起きないので達成感ありません。

あとは、Windowsの時と同じように、ローカルのポートへ接続すればOK

18
17
2

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
18
17