FileMaker Pro を MySQL サーバーに接続する その2 SSHトンネル

FileMaker Pro を MySQLサーバーに接続して WordPress の編集をやってしまおうとする連載、今回は「MySQLサーバーに接続する その2 SSHトンネル」です。

前回までのお話

  1. いろいろあって FileMaker Pro を MySQL サーバーに繋げることを試みます。
  2. まず ODBC ドライバをインストールしました
  3. 次に ODBC マネージャーをインストールしました
  4. 次に 設定ファイル、アダプタと呼ばれるものを購入しインストールしました
  5. しかし設定ファイルの設定を続けるためには SSH を迂回して接続する必要があります。

前回記事 FileMaker Pro を SQL サーバーに接続する その1 の続きです。

※ ここで追記ですが、このページの記事はシリーズの続き物記事となっていまして、ここだけ読むと話の流れが見えづらかったり説明が不足していたりしますのでご注意ください。特に前の記事では誰を対象にして何を対象とする何の記事であるのかを明記しておりますので、そのあたりもご確認のほどよろしくお願いいたします。

SSH を使ったトンネル接続とは何か

よくわかりません。では素っ気ないので私が理解した範囲で説明するとこうです。

MySQL サーバーに接続するには通常ブラウザからサーバーアドレスを入れてMyAdminに接続します。これならみんな知っていますね。

FileMaker からの ODBC 接続は大抵のレンタルサーバー屋さんが許可していないため出来ません。

しかしコマンドベースである SSH の接続だけは許可している場合が多く、SSH 接続をくぐり抜けての ODBC 接続なら可能になる。

と、こんな感じでしょうか。

 

必要なもの

MySQL サーバーアドレス、ログインIDやパスワード

当然これらが必要ですね。

サーバーへのログインIDやパスワードは各自わかっているので大丈夫でしょう。サーバーアドレスはMySQLサーバーのアドレスです。

ブラウザから接続してMyAdminの画面を見ると「mysql○○○○.xerver.jp」みたいな感じのサーバーアドレスがでっかく表示されています。これがサーバーアドレスです。

SSHの設定をする際、このアドレスを記入することになります。

MyAdmin サーバーアドレス
MyAdmin サーバーアドレス画面

エックスサーバーの場合、サーバー管理画面に載っているサーバーアドレスと、実際にログインしたときのサーバーアドレスが何故か異なっていました。最初そのせいで混乱しました。ログインしたときに現れるこっちのアドレスがSSH設定で使用するアドレスです。

…と書いた後で知りましたが、エックスサーバーでは「ユーザーID.xsrv.jp」でいいみたいですね。

ややこしく考えず、基本をすっ飛ばしてネット検索に頼りすぎず、素直にレンタルサーバーのマニュアルやヘルプでSSH接続について調べることをおすすめします。

※ これを書いてから時が流れ、Xserverのデータベースも更新されたりしています。新しいデータベースでは「localhost」になっていたりします。そんな変なアドレスなわけないだろと思いがちですがそれで合ってます。サーバー屋さんの情報をしっかり確認してください。

レンタルサーバーのSSH設定

レンタルサーバーの管理画面に行って SSH 接続の設定を行います。

SSH 設定 オン

サーバーパネルの SSH
サーバーパネルの SSH

エックスサーバーですとサーバーパネルのこんなところから設定をオンにできます。

公開鍵秘密鍵

ポート番号

下部、※印のところに接続ポートについて書いてあります。ここ重要です。一般的なポートと番号が違うようです。一般的には【22】で、エックスサーバーでは【10022】だそうです。確かにネットで情報を見ていると「接続ポートに22を入力して」と言うような記述にもよく出くわします。それほど一般的には22なんでしょうね。無条件に書いてあるので真似して22と入力してもエックスサーバーでは繋がりません。

世間の情報に惑わされず、ご自分の契約しているレンタル屋さんのサーバー情報のページでSSH接続のポート番号を確認したほうがいいでしょう。

公開鍵、秘密鍵

SSH設定をオンにするだけでは済まされず、公開鍵とか認証とかややこしそうな設定を行う必要があるようです。これはいったい何なのでしょう。

xserverではSSHに通常のIDとパスワードは使えません。公開鍵、秘密鍵というものが必要になります。

それが何かはわかりませんが必要なものですので設定しないわけにはいきません。

Xserver の例ですが、SSH 設定の鍵についての画面で順当に進めていけば鍵が作成され秘密鍵のダウンロードが出来ます。

次にやることはMacのローカルでのお話です。

まずダウンロードした秘密鍵のファイル名を「id_rsa」に変更します(拡張子なしで)

そしてローカルのホーム直下に「.ssh」という見えないフォルダを作成、そのフォルダに作成した「id_rsa」を置きます。

見えないフォルダを扱いますから、不可視ファイルを見るユーティリティを使ってくださいね(XtraFinderとか)

上記、レンタルサーバーの管理パネルから作成してローカルに保存する方法でした。これが簡単でいいかと思います。

別のやりかたではMacのターミナルを操作して全部作っておき、できたものをリモートにアップするという逆の方法もあり、UNIXに慣れた人なんかはこの方法でやってるみたいですけどunixコマンド知らない人にはちんぷんかんぷんです。

で、ですね、結果的にはこれでいいんですが、どのような理屈で作ったかまるっきりわかりません。

多分、秘密鍵はどこに置いてもいいのだろうと考えますが、「.ssh」フォルダにしろファイル名の「id_rsa」にしろ、そういうルールなのだと割り切るのがいいのではないかと思います。

参考:Mac OS XでエックスサーバーにSSH接続 | Show-web

SSH クライアントソフト

SSH はコマンドベースの接続で、接続する命令も当然コマンドベースです。難しいものです。わけのわからないものです。これらをわかりやすくまとめた SSH 接続クライアントなるアプリケーションもいろいろあるようです。

Windows では特に豊富な印象がありますね。Macにもあります。いくつかダウンロードして試してみましたが私にはかえって難しいものでした。簡単だと思える人はあれこれ探して使ってみてもいいでしょう。

SSH クライアントソフトがなくてもターミナルでコマンドをタタタっと入れれば同じ事ができます。というかターミナルが最強です(だそうです)

でもターミナルにタタタっと入力するそのやり方がわかりません。書き方も判りません。さてどうしましょう。

どうしましょうではいけませんので無理してでもターミナルを使います。

でもオマケでいうと、テントウ虫といういいアプリがあります。違った、テントウ虫アイコンの Coccinellida という小さなアプリケーションです。個人的にはこれこそが最強のSSHトンネル接続アプリでした。これについては後ほど詳しく。

SSH に接続

SSH に接続するためのコマンドの書き方を検索するといろいろヒットします。ヒットしますが的確なのがなかなか見つかりません。その道の達人が細かに書いてくれていますが基本的に何がどうなんだいと、そういう素人向けの記事がなかなかありません。

それもそのはず、エックスサーバー管理画面の「 ! ご注意ください」にこう書いてあります。

本機能を利用して実際に操作を行うには、UNIXの知識や、利用するコマンドに関する知識が必要です。

つまり知識のないやつはやるなと。これに関する情報はほぼすべてunixの知識を持つものだけを対象としているというわけです。

それに対してDigitalbooの当記事は「unixの知識など持ち合わせていない素人だけどSSHしかもトンネルで接続します」というとても危ない記事です。

ここまで来て改めて書きますけど、そういう記事なんですよ。とても危険かつ無謀なことをやっているということを了解の上お読みください。

コマンド

ということでターミナルコマンドですが基本の形は以下のようになります。多分。

ssh -p ポート番号 ユーザーID@ホスト名

「-p」がポート番号の指定で、-p の後ろに確認済みのsshポート番号を入れます。

「ユーザーID@ホスト名」は、ユーザーIDが契約しているID、@の後ろ、ホスト名はサーバーアドレスです。この形が基本のようです。

秘密鍵の場所まで指定するときは「-i」のオプションをつけるんですか。その場合はこうでしょうか。

ssh -i /Users/ユーザー名/.ssh/rsa_id -p ポート番号 ユーザーID@ホスト名

-i の後ろはMacの秘密鍵までのパスになっています。

鍵を作成したときのパスワード(パスフレーズ)などを訊いてくるので答えていくとキーチェーンに保存されます。多分。どうでしたっけ。多分そうだったような。

と、よくわからないながらこんな感じでターミナルからSSH接続できました。できましたよね?多分できますよね?

これで上手い具合に接続できていれば、FileMakerからODBC接続のための設定を行えます。行えるはずです。行えるんじゃないかな・・・いや無理です。

SSHに接続しただけではただのSSH接続です。そこからさらにトンネル接続しなければなりません。上記のコマンドだけでは不十分です。

ということで先ほどちょっと名を上げたテントウ虫アイコンCoccinellida の話に続きます。

私は普段このアプリケーションを使って簡単にSSH接続を行っています。ターミナルにコマンド入力するの面倒だし怖いしよくわからないし。

 

テントウ虫

SSH 接続を簡単に行えるアプリケーションがテントウ虫、じゃなくて Coccinellida です。

Coccinellida – http://coccinellida.sourceforge.net

このアプリケーション、何かというと、Mac OS X 用 の簡単な SSH トンネルマネージャ ですって。そのままですね。単にSSH接続を越えて「トンネル」まで言及しています。

これを使ってSSHトンネル接続します。ターミナルにコマンド入力するのが苦にならない人には不要かもしれません。 私は Coccinellida を知って、以降これを使って接続しています。

※ 更新 註:Coccinellida は MacOSX10.11 El Capitan までしか動作しません。それ以降のOSの場合、SSH Tunnel Manager を使うか、config を作成することをお勧めします。

この小さなアプリを起動してまずは設定を行います。

Coccinellida add

Addで新規設定を作ってみます。

General でトンネルになる接続先の設定を行いますね。

Name: わかりやすい名前をつけます。

Host: 接続先サーバーです。例えばxserverなら「ユーザー名.xsrv.jp」となります。

Port: SSH接続のポート、普通は22らしいです。xserver の場合は10022 でしたね。

User: レンタルサーバーのユーザー名です。

Password: xserverの場合はパスワードは使えません。公開鍵と秘密鍵を使いますからここは空欄で。

Identify: 秘密鍵のパスです。Macで秘密鍵が前述の場所にあるなら「 /Users/ユーザー名/.ssh/rsa_id」 になりますね。

あとの項目は触らずそのままです。

 

このように入力すると、画面の下部にコマンドが現れます。このコマンドをターミナルに入れるのと同じことを設定しているというわけです。

さてもうひとつ Port Forwarding タブがあります。ここも設定しないといけません。こちらはトンネルの先にあるサーバーへの接続設定のようです。

Add をクリックして新規を作ります。

左側がローカルの設定、右側がリモートの設定のようです。

左から順に見ていきます。

Type: 「 Local」 のまま。

Local Port:  ポート番号を入れますがこれ何でしょう。さっぱりわかりません。任意のポート番号でいいそうです。任意でいいと言われてもわかりません。私はどういうわけか「2022」と入れていますね。この数字がどこから来たのかわかりませんし何ら裏付けもなさそうです。どんな数字入れてもいいの?わかりませんが動いているのでよしとします。

Local Host: 「Localhost」のまま。

Remote Host: ここに接続先のサーバーアドレスを入れます。「サーバーのIPアドレス」を入れるところだそうです。

レンタルサーバーの管理パネルでMySQLの設定を見ると MySQLのIPアドレスが確認できると思います。

でもどういうわけか私の設定ではIPアドレスでなくサーバー名が入っています。

xserver なら「ユーザーID.xsrv.jp」または「mysql○○○○.xserver.jp」でしたね、私は「mysql○○○○.xserver.jp」としています。これで動いているんだからまあ、良しとしてください。

Remote Port : 接続先サーバーのポート番号です。今動いている私の設定では「3306」と設定しています。

いったい、この数字をどこから調べてきて入力したのか、まるで覚えていません。まったく記憶にございません。でもあれこれ調べ上げている中で発見した数字であると記憶しています。普通3306らしいんです。もしレンタルサーバーからポート番号が指定されているときは指定している番号を入れればいいでしょう。

とにかく3306 で動いているので良しとします。何といういい加減な記事なのでしょう。

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

テントウ虫で設定を終え、再びGeneralタブを見ると、下方のコマンド欄が充実していることが見て取れると思います。

SSH接続するコマンドとSSHからMySQLサーバーへ接続するコマンドがまとめて書かれている模様です。

このコマンドをターミナルにそのまま入れればSSHトンネル越しにSQLサーバーに接続できるという案配ですね。

ターミナルコマンドの知識がなくてもテントウ虫を設定することでコマンドを作成してくれました。さきほどターミナルコマンドの話が尻切れになっていましたが、ここで作成されたコマンドが正解コマンドとなります。そしてこのテントウ虫のアプリの実体は、コマンドをこうやって作成してターミナルに送り込んでいるだけの軽いアプリなんですね、多分。

Digital Boo Pennguin Icon 追記の註: うそです。ここで作られたコマンドをそのままターミナルに入れても接続できませんでした。ただコマンドを作ってターミナルに流してるだけの単純なアプリじゃありませんでした。

さてテントウ虫を起動するとメニューバーに現れますから、作成した設定を選択すると「ジュヮ」という音と共に接続されるんです。

ターミナルでコマンド入れるほうが早いわというような人を除けば、この小気味のよいアプリは使い勝手がたいへんよろしいです。

テントウ虫 Coccinellida はちょっと挙動が怪しいときがあって、無反応になったりプリファレンスが開かなくなったりしがちですが、そんな時は一旦終了して起動し直せば機嫌が直ります。

ということで、SSH を使ってトンネル接続できました。できましたよね?問題ありませんか?

※ 追記: テントウ虫はMacOS X El Capitan までしか使えません!

 

 ODBC の設定

ようやくここまで来ました。

前回書いたように、ODBC Manager からアダプタActual Open Source Databases を利用し、その設定を行うわけです。

この設定は初回にやって保存してしまえばあとは触らなくても大丈夫、毎回設定するとかそんなことはありません。

ここまで済んでしまえば、晴れて FileMaker からSQLデータベースに接続できます。

ただし毎回 SSH で接続をしてからになります。テントウ虫を使う場合はテントウ虫から設定を選んで「ジュヮ」と接続してからFileMakerの該当書類を起動します。

トンネル接続していない状態で接続を前提とするファイルメーカー書類を開くと、リモートのデータが表示されません。当たり前ですが。

FileMaker のファイルを使用するたびに SSH 接続するわけです。使用が終われば接続解除します。これがルーティンとなります。

Actual Open Source Databases の設定

さて改めまして前回の続き、ODBC Manager を起動して「システムDSN」タブを選択、「追加」で設定をこしらえましょう。

ODBC Manager
ODBC Manager

「追加」を選ぶとドライバの選択を促されますからインストール済みの「Actual Open Source Databases」を選びます。

設定画面で順に決めていきます。

DSN-conf 画面

ライセンスがある人はライセンスを入力、デモ版ではそのまま。続行します。

わかりやすい名前をつけて続行します。

サーバー: IPアドレスを入れろと言われていきなりどん詰まりです。何を入れればいいのでしょう。ここで1週間滞りましたが結果だけ書きますとここにはローカルホストを入れるのです。ローカルホストの場合IPアドレスは「127.0.0.1」です。「localhost」と入れてもOKです。なぜそれがわかったのか。忘れました。でもそうなのです。ここにはローカルホストを入れます。

ポート: ローカルのポート番号を入れます。これは SSHトンネル接続設定でローカルの「任意」のところに書き入れたのと同じポートを指定します。テントウ虫のときに何と書きましたか。私は「2022」と書きましたので、同じ「2022」を書き入れます。

理屈はもう忘れました。設定した当時は「わかった!」と思った記憶があります。でももう忘れて設定だけが残りました。

続行します。

DSN-conf-4

データベース: 接続するデータベースを入力します。

レンタルサーバーを契約してWordpressをインストールしたりすると、データベースが作成されますね。MyAdmin にログインしたらトップの次の階層にデータベースがあります。データベース名とはこれのことです。具体的に接続するデータベースです。このブログでしたら「_digitalboo」てな名前のデータベースで、「ユーザー名_digitalboo」という名前になります。これを入力します。

続行すると最後の確認画面が出てきて、ここで「テスト」も出来ます。

テストしてみましょう。データベースのパスワードを求める画面が出てくると思いますのでパスワードを入れ、接続できたかどうか試します。

このとき、あらかじめSSHトンネル接続をしていないと接続できませんよ。ターミナルかテントウ虫を使って接続している状態でテストします。接続できましたね。

「テストは正常に完了しました」と出ればOK。「完了」をクリックしてこの設定を保存します。

お疲れさまでした。これにて、SSHを介してSQLに接続する設定が完了しました。

本日ここでやったこと

ということで本日やったことをまとめるとこうでした。

  • SSH設定するためのポートやサーバーアドレスの確認
  • SSH設定オン
  • 公開鍵と秘密鍵の設定
  • ターミナルまたはテントウ虫でSSHトンネルを実現
  • ODBC Manager で システムDNS のActual Open Source Databases 設定

そして目出度くSSHを介してのSQL接続に成功しました。

今後は File Maker Pro の設定を行って外部データベースに接続します。

次回に続きます。

続きました→ FileMaker Pro を MySQL サーバーに接続する その3 FileMaker の設定

FileMaker Pro を MySQL サーバーに接続する その3 FileMaker の設定

[追記]

最新情報をゲットしたので追記で書いておきます。この一連の記事ですが、MacOS 10.12 では役に立たないそうです。テントウ虫も動かないとのこと。10.9で問題ありません。10.11でも問題ありませんでした。

[追記に追記 2018年夏]

ちょっとついでがあってmacOS10.12を入れてテストしてみました。

結果、テントウ虫は接続できませんでした。

他に似たようなアプリはないものかと必死こいて探しまして、SSH Tunnel Manager というアプリを見つけました。こちらも10.11では接続できましたが10.12では無理でした。

[追記に追記に追記]

macOS10.12環境下で SSH Tunnel Manager を用いてのトンネル接続に成功しました。

追記がだらだらしてきたので改めて別の稿にて書きます。

書きました。

macOS10.12 Sierra でトンネル接続

[追記に追記に追記に追記]

時が流れ、わずかに知恵が付いたかもしれない筆者が、コマンドで接続する件についても書きましたのでリンクしておきます。アプリに頼らず、ターミナルでタタタっと入力できるようになります。

SSH トンネル 複数の接続 – config で賄う

 

“FileMaker Pro を MySQL サーバーに接続する その2 SSHトンネル” への6件の返信

  1. いろいろ勉強になりました。ありがとうございます。MacではなくWindows利用者としても、SSHの話など「そうなんだよね」「なるほどね」が多くありました。
    ただ、拝見していてだんだんと分かってきたのですが、私は Microsoft SQL Server に FileMaker から接続する方法を探していました。ここで書かれているのはレンタルサーバー上の MySQL サーバーに FileMaker から接続する方法だったんですね。
    WordPress と記事の分類としても明記されているので、読者としてそれで気づけばいいだけの話です。そんな訪問者もいるということで、ご参考まで。

  2. 恐縮です。私がそもそもちゃんとは理解していないために判りにくい書き方にもなってしまったと思います。そもそも用語すらちゃんと判っていなかったと気づき反省しております。

    FileMakerで外部データベースに接続するときに必要なドライバを探し出すこと自体が難しかったのですが、それさえ見つかれば接続自体は難しいことではないような気がします。

    http://www.actualtech.com/products.php にも各種接続用ドライバがありますがこれらは基本Mac用のようですね。

    FileMakerからMySQLサーバーに接続して、今は運用方法で連日試行錯誤をしています。

    コメントありがとうございました。

  3. こんにちは。
    私も全くの素人ですが、ご案内の通りに一つずつ進めながらできていたのですが、最後の接続テストの所で入れる IDとPass ってどれを入れれば良いのでしょうか?

    お手すきの際にご案内頂けますと幸いです。

    1. コメントいただいていたのに放置状態が長くてすいません。今頃ですが、、、。
      最後のIDとPasswordは、MySQLデータベースサーバーにログインするためのものです。もしレンタルサーバーをご契約なら、その中でサーバーにログインするためのIDとパスワードを設定されていると思いますのでそれです。

  4. この記事はスバラシイです。
    どうか末長くアーカイブしていってください!
    私も外部MySQLサーバにMac/FileMakerを接続して使っていますが、
    いつも“設定どうすんだっけ”になっていたので・・。
    ちなみにHighSierraとSSH Tunnel Managerで期待通り動いてますよ。

    1. お褒めいただいてありがとうございます! 何の知識もないところから無理矢理やり遂げて、自分用備忘録みたいなつもりでした
      SSH Tunnel Manager は10.12、10.13、問題なく使えるんですね。ありがたいアプリケーションです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください