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

SSHトンネルを介してMySQLサーバーにリモートアクセス

    SSHトンネルを介してMySQLに接続することにより、リモートシステム上のMySQLに安全にアクセスできます。このチュートリアルでは、WindowsではPuttyを、LinuxシステムではSSHを使用して、SSHトンネルを介してMySQLサーバーにリモート接続するために必要な手順を説明します。これは、リモートシステムのSSHポート22を介してMySQLのローカルポート(3306)をMySQLのリモートポート(3306)に転送する方法を示しています。これにより、ローカルポート3306をリモートサーバーのポート3306に接続することで、ポート22を介してリモートサーバーと安全に通信できるようになります。

    前提条件

    MySQLサーバーがインストールされているリモートサーバー。 Ubuntu20.04LTSにMySQL8をインストールする方法に従うことができます。

    また、ポート22が開いていて、ポート3306がMySQLサーバーを備えたリモートシステムのファイアウォールによってブロックされていることを確認してください。このチュートリアルでは、MySQLサーバーがローカルシステムで実行されていないことも前提としています。これにより、ローカルシステムのポート3306がポート転送に使用できるようになります。

    また、MySQLサーバーがインストールされ実行されているシステムへのSSHアクセスも必要です。 SSHユーザー名とパスワードのいずれかを使用できます またはSSHユーザー名とキー リモートシステムに接続します。

    Windows10にPuttyをインストールする

    WindowsシステムでPuttyを使用して、リモートサーバーにインストールされているMySQLサーバーにアクセスできます。 Linuxベースのシステムを使用している場合は、SSHセクションに移動できます。

    図1で強調表示されているように、Puttyの公式ダウンロードページを開いてMSIインストーラーをダウンロードします。

    図1

    Putty実行可能ファイルをインストールせずに使用することもできます。ダウンロードページを下にスクロールして、実行可能ファイルをダウンロードします。

    次に、Puttyを起動します。パテのデフォルトオプションは図2のようになります。

    図2

    Puttyを使用したMySQLへの安全な接続

    このセクションでは、Puttyを使用してリモートシステムからSSHトンネルを介してMySQLに安全に接続する手順について説明します。次に、図3に示すように、リモートホストの詳細を入力します。

    図3

    また、接続をクリックします -> SSH ->トンネル 図3で強調表示されているように、図4に示すようにSSHポート転送の詳細を入力します。送信元ポートは 3306に設定する必要があります。 宛先は127.0.0.1:3306に設定する必要があります 。

    図4

    追加ボタンをクリックします 送信元ポートと宛先を入力した後。 転送ポートが更新されます 図4に示すように、また、Authオプションをクリックし、図5に示すようにSSHキーを選択します。Puttygenを使用して秘密キーを生成したことを確認してください。

    図5

    次に、開くボタンをクリックします 接続を開きます。図6に示すように、初めてセキュリティアラートが表示されます。

    図6

    [はい]ボタンをクリックします 接続を受け入れます。秘密鍵の生成中に設定した場合は、パスフレーズを要求されます。接続に成功すると、図7に示すようにリモートシステムの詳細が表示されます。

    図7

    SSH経由で接続するほかに、ローカルポート3306をリモートサーバーのポート3306に転送しました。 SSHトンネルをリモートサーバーに対して開いたままにするため、Puttyを閉じないでください。次に、任意のMySQLクライアントを起動し、リモートMySQLサーバーに接続してみます。私はデモンストレーションの目的でMySQLWorkbenchを使用しました。 Workbenchのホーム画面は図8のようになります。Workbenchを使用してSSHトンネル経由でリモートMySQLサーバーに接続することもできます。

    図8

    次に、プラスアイコンをクリックします 新しいローカル接続を作成するには 図8で強調表示されているように、図9に示すように接続を追加するオプションが表示されます。

    図9

    図9に示すように、接続名を指定し、ホスト名を127.0.0.1、ポートを3306のままにします。次に、[接続のテスト]をクリックして、SSHトンネルを介したリモートMySQLサーバーへの接続をテストします。 Vaultにパスワードを保存していない場合は、図10に示すようにパスワードを要求されます。

    図10

    次に、パスワードを入力して、[OK]ボタンをクリックします。 接続をテストします。図11に示すように、接続の成功に関する成功メッセージが表示されます。

    図11

    次に、[OK]ボタンをクリックします 接続メッセージを閉じて、もう一度[OK]ボタンをクリックします 接続ウィザードを閉じます。図12に示すように、接続ライブラリに接続が追加されます。

    図12

    次に、新しく追加した接続をクリックします。図13に示すように、リモートサーバーに接続し、リモートMySQLサーバーのデータベースを一覧表示する必要があります。

    図13

    これで、ローカルシステムでWorkbenchを使用してリモートMySQLサーバーで作業できます。また、リモートMySQLサーバーでの作業が完了したら、WorkbenchとPuttyを閉じて接続を終了します。

    SSHを使用したMySQLへの安全な接続

    以下に示すように、SSHコマンドを使用してローカルポート3306をリモートポート3306に転送することにより、リモートMySQLサーバーに接続できます。前のセクションと同様に、ローカルポート3306が空いていることを確認してください。

    メモ :下記のコマンドはUbuntuデスクトップでテストされています。手順とコマンドは、他のLinuxシステムでも同様である必要があります。

    # Shutdown local MySQL - Else use a different local port
    sudo service mysql stop

    # Install MySQL Client - If required
    sudo apt install mysql-client

    # Port Forwarding - Command
    ssh -N -L 3306:127.0.0.1:3306 [USER]@[SERVER_IP]
    # OR
    ssh -N -L 3306:127.0.0.1:3306 -i [SSH Key] [USER]@[SERVER_IP]

    # Port Forwarding - Example
    ssh -N -L 3306:127.0.0.1:3306 [email protected]
    # OR
    ssh -N -L 3306:127.0.0.1:3306 -i example.pem [email protected]

    上記のコマンドはSSHトンネルを開き、ローカルポート3306をリモートポート3306に接続します。これで、MySQLクライアントを使用してリモートMySQLサーバーに接続できます。前のセクションを参照して、ローカルシステムにインストールされているMySQLWorkbenchを使用できます。

    また、図14と図15を参照して、SSHトンネルを開き、リモートMySQLサーバーに接続します。

    図14

    図15

    概要

    このチュートリアルでは、WindowsおよびLinuxシステムのSSHトンネルを介してリモートMySQLサーバーに接続するために必要な手順を説明しました。


    1. 番号へのoraclevarchar

    2. SQL ServerのLIMITとOFFSETに相当しますか?

    3. SQLバディ–WebベースのMySQL管理ツール

    4. エンティティフレームワークを使用してストアドプロシージャを実行する