sql >> データベース >  >> RDS >> Mysql

PHPでSSH経由でMySQLサーバーに接続する

    SSHトンネルソリューション

    MySQLデータベースサーバーへのSSHトンネルを設定します(セキュリティのためにJumpboxプロキシを介して)。


    (A)GUIツール

    要件に応じて、 Visual Studio CodeなどのSSHトンネリングサポートが組み込まれたGUIMySQLクライアントを使用できます。 ポートの転送/SSHトンネルの作成 TablePlus または、PuTTY を使用します ローカルを設定するには ポートフォワーディング。

    macOSでは、安全なパイプが好きです。 または TablePlus


    (B)コマンドライン

    ステップ1。

    ssh -fNg -L 3307:10.3.1.55:3306 [email protected] 
    

    ここで重要なのは'-L' ローカルを要求していることをsshに通知するスイッチ ポートフォワーディング。

    ポート3307を使用することを選択しました その上。 ローカルのすべてのトラフィック このポートに向けられたマシンは、私のsshクライアントを介して「ポート転送」されます。 sshサーバーへ アドレスssh-jumpbox.comのホストで実行されています 。

    Jumpbox sshプロキシサーバーはトラフィックを復号化し、ユーザーに代わってMySQLデータベースサーバーへのネットワーク接続を確立します。10.3.1.55:3306 、 この場合。 MySQLデータベースサーバーは、Jumpboxの内部ネットワークアドレスからの接続を認識します。


    ローカルポート転送構文
    構文は少し注意が必要ですが、次のように表示されます。

    <local_workstation_port>:<database_server_addr_remote_end_of_tunnel>:<database_server_port_remote_end> [email protected]_proxy_host.com
    

    他のスイッチに興味がある場合は、次のとおりです。

    -f(バックグラウンドに移動)
    -N(リモートコマンドを実行しない)
    -g(リモートホストがローカルに転送されたポートに接続できるようにする)

    秘密鍵認証、上記に(-i)スイッチを追加:

    -i / path / to / private-key

    ステップ2。

    ローカルMySQLクライアントに、マシンのローカルポート3307(-h 127.0.0.1)を介してSSHトンネルを介して接続するように指示します。これにより、手順1で確立したSSHトンネルを介して送信されたすべてのトラフィックが転送されます。

    mysql -h 127.0.0.1 -P 3307 -u dbuser -p passphrase
    

    クライアントとサーバー間のデータ交換は、暗号化されたSSH接続を介して送信されるようになり、安全になりました。


    セキュリティノート
    データベースサーバーに直接トンネリングしないでください。データベースサーバーにインターネットから直接アクセスできるようにすることは、セキュリティ上の大きな責任です。トンネルターゲットアドレスをJumpbox/要塞ホストのインターネットアドレス(ステップ1の例を参照)にし、データベースターゲットを内部にします。 リモートネットワーク上のデータベースサーバーのIPアドレス。残りはSSHが行います。


    ステップ3。

    次に、PHPアプリケーションを次のコマンドで接続します。

    <?php
          $smysql = mysql_connect( "127.0.0.1:3307", "dbuser", "passphrase" );
          mysql_select_db( "db", $smysql ); 
    ?>
    

    Chris Snyder'sのクレジット すばらしい記事 MySQL接続用のsshコマンドライントンネリングの詳細。



    1. MySQL日時列のデフォルト値をどのように設定しますか?

    2. MySQL:ALTER IGNORE TABLE ADD UNIQUE、何が切り捨てられますか?

    3. SQL Server 2008 Windows認証ログインエラー:ログインは信頼されていないドメインからのものです

    4. サマーパフォーマンスパルーザ2013のフォローアップ