web-dev-qa-db-ja.com

Workbenchを使用してSSH経由でMySQLデータベースに接続できない

MySQL Workbenchを使用して、Webアプリケーションサーバーの1つからSSHトンネリングを介してデータベースに接続しようとしています。これが基本的な設定です。セキュリティ上の理由から、スクリーンショットの一部の値を変更したことに注意してください。

Workbench screenshot

問題は、アプリケーションサーバーの1つからSSHトンネルを介して接続しようとするたびに、次のエラーが発生することです。

ユーザーsocial_shop_prodを使用して、computer.amazonaws.comのSSHトンネル経由でus-east-1.amazonaws.comに接続できませんでした。 127.0.0.1のMySQLサーバーに接続できません。

ただし、次のコマンドラインを介してSSH経由で同じ資格情報を使用する場合:

mysql -u social_shop_prod -h us-east-1.amazonaws.com -p

正常に接続して、MySQLインタラクティブコマンドプロンプトを取得できます。

ここで私の開発チームの他のメンバーと話していると、誰も私がWorkbenchを使用してアプリサーバーからSSH経由でトンネルできない理由を理解できません。しかし、私がアプリサーバーの1つにSSHで接続し、コマンドラインを介してMySQLに接続すると、接続できました。

そして、なぜそれは127.0.0.1以上に接続しようとしていますか?構成では指定しませんでした。また、私のhostsファイルは、以下に示すドメインをそのIPにリダイレクトしていません。

どんな建設的な入力も大歓迎です。

10
Frank Rosario

SSHトンネルを介して接続しているので、これはus-east-1.amazonaws.comのMySQLポート3306がコンピューター上でローカルに開かれていることを意味します。コンピュータのIPアドレスは127.0.0.1またはlocalhostです。 us-east-1.amazonaws.comのmysqlサーバーに接続すると、実際には127.0.0.1を介して、つまりコンピューターにアクセスします。別のトンネルを開いているか、MySQLがコンピューター上でローカルに実行されている場合、認証の試行を拒否しているのは他のMySQLサーバーである可能性があります

あなたが試すことができるいくつかのテストがあります:

1。Windowsコンピュータがリッスンしているポートは何か

コマンドプロンプトから:netstat -a(開いているすべてのポートを一覧表示します)

Linuxでは次のようになります:netstat -tlpn

2。基本的な接続テスト

DOSコマンドプロンプトまたはLinuxコンソールから:telnet 127.0.0.1 3306

タイムアウトが発生した場合、または他のプログラムが応答した場合は、トンネルが正しく設定されていません。

。MySQL Workbenchがローカルで開いているポート番号を変更します

MySQLワークベンチがコンピューターにトンネルを作成していることを前提としています。その場合は、MySQLワークベンチで、9000などの別のポート番号をトンネリングしてみてください。

9000がnetstat -aから開いているポートとしてリストされていないことを確認します。

Us-east-1.amazonaws.comへのSSHアクセス権がある場合

4。us-east-1.amazonaws.comからMySQLに接続してみてください

mysql -u myuser -h 127.0.0.1 -p

Rolandoが言ったように、正しい資格情報で接続していることを確認する必要があります。たとえば、myuser @ 127.0.0.1として接続していて、ホストのないユーザーmyuserがある場合、user @ 127.0.0.1を使用して接続することはおそらくできません。

5
Craig Efrein

127.0.0.1にアクセスするのは、トンネルがローカルマシンのポートをリモートホストに接続するためです。メッセージは、SSH接続が確立されていないことを示唆しているようです。

コマンドラインからこれを試してください:

ssh -L 33000:remotehost:3306 user@remotehost

SSHが転送ポートを許可していることを確認してください。転送が許可されなかったか拒否されたことを示すメッセージが表示された場合は、そのためです。

これを修正するには、サーバー構成を変更する必要があります。この構成をSSHサーバーに追加します。

AllowTcpForwarding yes

この構成をアクティブにするには、サーバーを再起動することを忘れないでください。

2
Mei

私はこの問題に2週間近く対処し続け、なんとか設定することができました。ここに投稿して、もっと多くの人が試せるようにします。

OK、OpenSSH(Win10ネイティブ)とWorkbench 8を使用しています。

ステップバイステップ:
1。 ssh-addを使用して、SSHホスト鍵をエージェントに追加します。
2。 ssh-keygenを使用して鍵ペアを生成します。私の場合、これらのファイルはインストール構成に従って自動的にUsers/myUser/.sshに移動します。
3。公開鍵をauthorized_keysファイルに追加します(これはサーバーのインストールパス内にある必要があります。私の場合はWindows/System32/OpenSSH/.ssh)拡張子なし。
4。 ssh-addを使用して、作成したキーをエージェントに追加します。

上記のステップは、コマンドラインSSHサーバーの設定とほぼ同じです。私は、OPが彼の接続に対してすでに実行しており、ターミナルを介して動作していることを理解しています。 MySQL Workbench 8を設定するには、private_key.pemをOpenSSH形式に変換する必要があることを除いて、まったく同じことを行いますUsers/myUser/.sshOpenSSH_instalation_path/.sshに移動する前

  1. private_key.pemをPUTTYgenを使用してOpenSSH形式に変換します。
  2. "OpenSSH authorized_keysに貼り付けるための公開キー"フィールドをコピーします。
  3. 公開鍵をフォルダーUser/myUser/.sshおよびOpenSSH_instalation_path/.sshに保存します
  4. PuTTYからコピーしたキーをOpenSSH_instalation_path/.sshフォルダのauthorized_keysファイルに貼り付けます。
  5. OpenSSH形式のキーをUser/myUser/.sshにエクスポートします。
  6. Sshdおよびmysqlサービスを再起動します
  7. 変換された秘密鍵を使用してSSHサーバーに接続するようにワークベンチを構成します。

更新:sshd_configファイルで以下を設定する必要があります:

パスワードなしのPermitRootLogin
PubkeyAuthenticationはい
PasswordAuthentication no
PermitEmptyPasswordsいいえ
AllowTcpForwarding yes

読んでください:

私は経験の浅いアナリストなので、上級ユーザーが2つの.sshフォルダーのどちらが適切かを知っている場合は、お知らせください。 OpenSSHはこれについてちょっと曖昧です。
これは、localhostのみを使用してローカル開発環境を設定するときに機能しました。単に学習目的のため。
接続をテストする前に、myUser @ localhostをMySQL Workbenchユーザーに追加することができます。
本当に必要な場合は、画像を追加できます。

1
Rafael Corrêa

同様の問題がありましたが、これは不便かもしれませんが、AWSのファイアウォールルールを確認してください。外部からの接続を制限するためにIP範囲を設定しています。そして、私のオフィスのIPが変更されたため、IP範囲外になりました。別のオフィスにいる私の同僚はまだ接続できたので、問題は自分のPCにあると思いましたが、問題はAWSのファイアウォールルールにありました。それが誰かを助けることを願っています:)

0
Asped

私の場合、ローカルでホストをホストする代わりに、有効なドメイン名またはIPに戻すを実行する必要があった問題が解決されました。

カスタムホスト解決が失敗する(_/etc/hosts_)

私は定義したローカルホスト解決メカニズムを使用します。

_#.#.#.#    my-vm
_

何らかの理由で、Linux Mint 14 (Nadia)に似ている_MySQL 5.2.47_をUbuntu 12.10 (Quantal)に使用すると、解決メカニズムが機能しませんになります。

解決

単純にパブリックドメイン名に切り替える _my-website.com_などの問題を解決します。

0
Édouard Lopez

さまざまなターゲット(Amazon RDS、Amazon EC2、Windows Azureなど)に接続するためのリソースのリストについては、こちらをご覧ください: http://forums.mysql.com/read.php?152,252640,252640#msg -25264

0
Mike Lischke