web-dev-qa-db-ja.com

SSH上のTCP / IPでMySQL Workbenchを使用しようとしています-接続に失敗しました

PCからMySQL WorkbenchのSSH接続でTCP/IPを使用して接続できません。どうしたの?

UbuntuサーバーにMySQL 5.1データベースを作成しましたmysql.myhost.com。ローカルでアクセスできます。 MySQL Workbench(PC)は、ssh経由でTCP=を介して接続を確立することを提供します。コマンドラインmysqlが正常に機能するリモートサーバーのポート3306で実行されます。

次のセッション詳細を使用しました。

  • 接続方法:SSH経由のTCP/IP。
  • SSHホスト名:mysql.myhost.com:3306
  • SSHユーザー名:my linux login
  • SSH公開鍵ファイル:私のローカル公開鍵ファイル
  • MySQLホスト名:127.0.0.1 MySQL
  • サーバーポート:3306
  • ユーザー名:root

接続しようとすると、「ユーザーrootでmysql.myhost.comのSSHトンネルを介して127.0.0.1:3306でMySQLに接続できませんでした」というエラーメッセージが表示されます。

「 '127.0.0.1'のMySQLサーバーに接続できません(10061) "

別のテストとして、PuTTYを使用してポート3306でSSHトンネルをセットアップし、MySQL Workbenchを使用して、上記のようにローカル3306への接続をリモートサーバーに転送するトンネルを介してOKに接続できます。しかし、Workbenchで「TCP/IP over SSH」を機能させることができません。

2番目の質問:Workbenchが「SSH公開鍵ファイルへのパス」を要求する場合、本当に秘密鍵ファイルが必要ではありませんか?

43
Dizzley

私自身がこのエラーに遭遇したとき、私はこの質問に遭遇しました。やっと構成が分かりました。

  1. Bind_address = 127.0.0.1がすでにある/etc/mysql/my.cnfの何も変更しませんでした。したがって、ローカルホストのみが接続できます。
  2. 私はOpenSSHサーバーを使用しています。したがって、その構成ファイル/ etc/ssh/sshd_configで、私はnoからyesに変更しましたTCP転送を担当するパラメーター、つまり- AllowTcpForwarding yes
  3. 最後に、MySQL WorkBenchに次のように入力しました。

    • SSHホスト名:192.168.0.8:22(私のSSHサーバーはポート22で待機します)
    • SSHユーザー名:sshuser
    • SSHキーファイル:* C:\ Users\windowsuser\.ssh\id_rsa *(publicと表示されていても、秘密キーである必要があります)
    • MySQLホスト名:127.0.0.1(MySQLサーバーはデフォルトでlocalhostのみにバインドされているため、変更しないでください)
    • MySQLサーバーポート:3306(これもデフォルト)
    • ユーザー名:root

残りの唯一のことは、パスワードではなくキーを使用するようにSSHサーバーを正しく構成することです。これが誰かを助けることを願っています。

31
Eye

SSH接続のTCP/IPアプローチは、MySQL接続の基礎となる「通常の」SSH接続を確立することで機能すると思います(OpenSSHコマンドラインクライアントで-Lを使用してトンネルを作成するのと同じ方法で)。

したがって、トンネルを確立するサーバー上のSSHサーバーへの接続を指定する必要があります。ここでは、mysql.myhost.com:3306を使用しているようです。これは、このSSHサーバー(MySQLではない)をポート3306で実行していることを意味します。

MySQLサーバーを127.0.0.1:3306にバインドし、SSHサーバーをポート3306のmysql.myhost.comの外部IPアドレスにバインドすることは可能ですが、それはほとんどありません。 SSHサーバーはポート22(デフォルト)でリッスンしていると思います。

おそらくmysql.myhost.com:22を使用する必要があります。 (PuTTYなどの通常のSSHクライアント経由で接続できることも確認してください。)

8
Bruno

Mysql.userテーブルでユーザーを確認する必要がある場合があります。

このクエリを実行します。

SELECT user,Host FROM mysql.user;

次のようなものが表示されます。

mysql> SELECT user,Host,password FROM mysql.user;
+------------------+-------------+-------------------------------------------+
| user             | Host        | password                                  |
+------------------+-------------+-------------------------------------------+
| root             | localhost   | *7A670E02260CDEEFF062DD08F3A6F6DA079998CB |
| ping             | %           | *124E1DB56CC8D6E2FEE8315BB2544BF04B980DB6 |
| admin            | 10.67.135.% | 1a6858054a41fede                          |
| icorbin          | 10.67.135.% | 366ed93a7396650e                          |
+------------------+-------------+-------------------------------------------+
4 rows in set (0.00 sec)

注意してください

  • root @ localhostはlocalhostからのみログインできます。
  • ping @ '%'はTCP/IP経由でログインできます
  • [email protected].%は、そのネットブロックからのみTCP/IP経由でログインできます
  • [email protected].%は、そのネットブロックからのみTCP/IP経由でログインできます

RootをTCP/IP経由で接続する場合は、rootユーザーのIPアドレスまたはネットブロックを指定する必要があります。

このようなもの:

GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'whateverpassword';

またはrootパスワードがroot @ localhostと同じ場合

GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY PASSWORD '*7A670E02260CDEEFF062DD08F3A6F6DA079998CB ';

警告:root @ '%'は通常推奨されません。たぶんroot@'10.% 'や他のrootのネットブロックを試してみてください。

試してみる !!!

8
RolandoMySQLDBA

MySQL Workbenchの古いバージョンを使用していて、更新する必要がある場合があります。これはバージョン6.0.8のバグで、現在Ubuntuリポジトリのバージョンです。バージョン6.3.6に更新すると、これが修正されました。

ここからダウンロード: http://dev.mysql.com/downloads/workbench/#downloads

3
Gleasonator

他の回答で言及されていないことの1つは、SO( https://stackoverflow.com/questions/34504232/mysql-workbench-failing-to-connect-via-ssh-due-to-key/38108623#3810862 )。

そこでの回答にもかかわらず、MySQL Workbench 6.3.7(64ビット、Windows 10)でパスワード保護されたキーを使用することができました。

2
Thomas

私の問題は、ed25519 SSHキーを使用しようとしたことが原因でした。 auth.logのSSHサーバーでこのエラーに気づきました:

sshd[25251]: Connection closed by 192.168.x.x [preauth]

RSAキーの使用に切り替えると、すべてが期待どおりに機能しました。

2
jbiz

Sshを介してサーバーに接続しようとしているが、mysqlポートを使用している。必要なポートは、sshサーバーがリッスンしているもので、通常は22、次にmysqlのホスト名とポートにはlocalhostと3306です。

1
Justin Buser

同じエラーが発生しました。問題は、「ある程度」のタイムアウトです。私は120秒まで値をクランクアップしましたが、役に立ちませんでした。

私の場合、nslookup myserver.comを実行し、ホスト名の代わりにIPアドレスを使用して解決できます。私の仮定は、IPv4からIPv6に接続しようとするときの問題です。

1
Markus Zeller

PuTTYによって作成されたキーが機能しない場合があります。 Linuxボックスでssh-keygenを使用して、キーペアを作成します。新しいid_rsaの内容をWindowsのテキストファイルにコピーします。 Linuxボックスのauthorized_keysにid_rsa.pubの内容を必ず追加してください。 MySQLホスト名の127.0.0.1を含め、Workbenchの他のすべてのデフォルトは問題ありません。もちろん、SSH経由の標準TCP/IPでなければなりません。

1
mcmacerson

私も同じ問題に直面しました。 AllowTcpForwarding Yesを確認して設定しようとしましたが、sshd_configに見つからなかったため、役に立ちませんでした。 sshホスト名が[〜#〜] not [〜#〜]とmysqlホスト名と同じであることを確認してください(使用localhost)。

ワークベンチで+を選択して新しい接続を追加し、以下を設定します。

  • 接続方法:SSH経由の標準TCP/IP
  • SSHホスト名:192.168.0.50:22(リモートSSHサーバーのIPとポートを配置(オプション))
  • SSHユーザー名:sshuser
  • パスワードを設定するか、プロンプトで追加できます
  • MYSQLホスト名:localhostまたは127.0.0.1
  • MYSQLサーバーポート:06
  • パスワードを設定するか、プロンプトで追加できます

接続をテストします。成功したらOK.Violaを押してください!

1
Reagan Ochora

同じエラーが発生しました。私の場合:

  • Ubuntu 18.04
  • mysqlワークベンチ8.0.18
  • パスワードなしのsshアクセス(公開/秘密sshキーを介してのみ)

私はこの問題を後に解決しました:

  1. 削除する mysql-workbench-community(以前にmysqlのWebサイトからインストール):

    Sudo aptはmysql-workbench-community -yを削除します

  2. インストールmysql-workbench

    Sudo apt install mysql-workbench -y

  3. 新しい接続を追加

  4. [キーチェーンに保存]をクリックしますmysqlの場合(sshユーザーではありません)、パスワードを設定します
  5. 「接続テスト」をクリックします
  6. プロンプトパスワードの後、入力を空のままにし、「パスワードを保存」をチェックします
  7. 「OK」をクリック
0
ktretyak

走る

SELECT user,Host FROM mysql.user;

また、Workbenchを介してログインしようとしているユーザーが、ホスト列に%ではなくlocalhostと言っていることを確認してください。

%と表示されている場合は、次のように修正します。

UPDATE mysql.user SET Host="localhost" WHERE user="yourusername";

(このユーザーがSSHまたはWorkbenchを介してWorkbenchを操作するように作成したと仮定します。上記により、そのユーザーはリモートTCP経由でログインできなくなります)

0
Nick

わかりました、これは古い質問であることはわかっていますが、何時間も髪の毛を抜いてしまいました。私はブルーノとアイが述べたすべてをチェックしました、そしてそれはすべて良さそうでした。それから私はそれが本当に秘密/公開の鍵であることに気づきました。そこで、私はPageantを起動して秘密鍵を追加し、MySQL Workbenchが読み取って接続できる公開鍵を作成しました。 (MySQL Workbenchが実際に動作し始めたとき、それは実際には一種のクライマックスでしたが、幸せな方法で。)

TLDR:Pageantを使用して、秘密鍵から公開鍵を生成します。

0
Bonnie

MySQLバージョン5.5.29およびMySQL Workbench 5.2.40を実行しているサーバーに接続しているUbuntuマシンで同じ問題が発生しました。 SSHサーバーでは、ssh-keyを使用する必要があります。

Rootユーザーを使用してMySQLサーバーに接続できませんでした。代わりに、ログインに使用する別の非rootユーザーを作成する必要がありました。その後、うまく接続できました。

お役に立てれば。

0
Kyle Coots