Saya tidak dapat terhubung menggunakan koneksi TCP / IP melalui SSH di MySQL Workbench dari PC. Apa yang sedang terjadi?
Saya membuat database MySQL 5.1 di server Ubuntu mysql.myhost.com . Saya dapat mengaksesnya secara lokal. MySQL Workbench (PC) menawarkan untuk membuat koneksi melalui TCP over ssh. Ini berjalan pada port 3306 pada server jauh di mana perintah-baris mysql berfungsi dengan baik.
Saya menggunakan detail sesi berikut:
- Metode Koneksi: TCP / IP melalui SSH.
- Nama Host SSH: mysql.myhost.com : 3306
- Nama pengguna SSH: login linux saya
- File kunci publik SSH: file kunci publik lokal saya
- Nama host MySQL: 127.0.0.1 MySQL
- Port Server: 3306
- Nama pengguna: root
Saya mendapatkan pesan kesalahan ketika saya mencoba untuk terhubung: "Gagal terhubung ke MySQL pada 127.0.0.1:3306 melalui terowongan SSH di mysql.myhost.com dengan root pengguna"
"Tidak dapat terhubung ke server MySQL di '127.0.0.1' (10061)"
Sebagai tes lain - saya membuat terowongan SSH dengan port 3306 menggunakan Putty dan saya dapat menghubungkan OK menggunakan MySQL Workbench melalui terowongan yang meneruskan koneksi ke 3306 lokal saya ke server jauh seperti yang dijelaskan di atas. Tapi saya tidak bisa mendapatkan "TCP / IP over SSH" bekerja di Workbench.
Pertanyaan sekunder: ketika Workbench meminta "Path ke file kunci publik SSH" bukankah itu benar-benar membutuhkan file kunci pribadi saya?
sumber
Jawaban:
Saya menemukan pertanyaan ini ketika saya sendiri mengalami kesalahan ini. Saya akhirnya bisa mengetahui konfigurasi.
Akhirnya saya memasukkan yang berikut ini di MySQL WorkBench.
Satu-satunya hal yang tersisa bagi Anda adalah mengkonfigurasi dengan benar server SSH Anda agar berfungsi dengan kunci daripada kata sandi. Semoga ini bisa membantu seseorang.
sumber
AuthorizedKeysFile /home/root/.ssh/authorized_keys
dan bahwa otor_keys memiliki kunci PUBLIC saya sebagai entri.AllowTcpForwarding yes
diterapkan ke server jauh yaitu host yang memiliki instance MySQL yang kami coba sambungkan; atau mesin lokal dengan MySQL Workbench diinstalAllowTcpForwarding
entriSaya pikir pendekatan TCP / IP over SSH bekerja dengan membangun koneksi SSH "normal" yang mendasari koneksi MySQL (dengan cara yang sama seperti Anda akan menggunakan tunnel
-L
dengan klien command-line OpenSSH).Oleh karena itu, Anda harus menentukan koneksi ke server SSH di server tempat Anda membuat terowongan. Di sini, Anda tampaknya menggunakan
mysql.myhost.com:3306
, yang akan menyiratkan bahwa Anda menjalankan server SSH ini (bukan MySQL) pada port 3306.Mungkin untuk mengikat server MySQL pada 127.0.0.1:3306 dan server SSH pada alamat IP eksternal Anda untuk
mysql.myhost.com
pada port 3306, tapi itu sangat tidak mungkin. Saya kira server SSH Anda mendengarkan pada port 22 (default).Anda mungkin harus menggunakan
mysql.myhost.com:22
. (Periksa Anda dapat menghubungkannya melalui klien SSH normal seperti Putty juga.)sumber
Anda mungkin perlu memeriksa pengguna di tabel mysql.user.
Jalankan kueri ini:
Anda harus melihat sesuatu seperti ini:
Mohon perhatikan itu
Jika Anda ingin root terhubung melalui TCP / IP, Anda harus menentukan alamat IP atau netblock untuk pengguna root.
Sesuatu seperti ini:
atau jika kata sandi root sama untuk root @ localhost
CAVEAT: root @ '%' normanlly tidak disarankan. Mungkin coba root@'10.% 'atau netblock lain untuk root.
Cobalah !!!
sumber
...@localhost
bekerja melalui terowongan SSH, karena sejauh menyangkut server MySQL, koneksi berasal dari ujung terowongan?Anda mungkin menggunakan versi MySQL Workbench yang lebih lama dan perlu memperbarui. Ini adalah bug dalam versi 6.0.8, yang saat ini merupakan versi dalam repositori Ubuntu. Memperbarui ke versi 6.3.6 memperbaiki ini untuk saya.
Unduh di sini: http://dev.mysql.com/downloads/workbench/#downloads
sumber
Satu hal yang tidak disebutkan dalam jawaban lain adalah pentingnya format OpenSSH untuk kunci tersebut sebagaimana dinyatakan pada SO ( https://stackoverflow.com/questions/34504232/mysql-workbench-failing-to-connect-via- ssh-due-to-key / 38108623 # 38108623 ).
Meskipun ada jawaban di sana, saya dapat menggunakan kunci yang dilindungi kata sandi dengan MySQL Workbench 6.3.7 (64 bit, Windows 10).
sumber
Masalah saya adalah karena saya mencoba menggunakan
ed25519
kunci SSH. Saya perhatikan kesalahan ini di server SSH diauth.log
:Setelah saya beralih menggunakan kunci RSA, semuanya bekerja seperti yang diharapkan.
sumber
Anda mencoba terhubung ke server melalui ssh tetapi menggunakan port mysql. Port yang Anda inginkan adalah apa pun yang sedang didengarkan oleh server ssh Anda, biasanya 22, kemudian localhost dan 3306 untuk nama host dan port mysql.
sumber
Saya menghadapi masalah yang sama. Saya memeriksa dan mencoba untuk mengatur AllowTcpForwarding Ya tetapi tidak ada di sshd_config saya jadi tidak ada bantuan. pastikan nama host ssh BUKAN sama dengan nama host mysql (gunakan localhost).
Di meja kerja, pilih + untuk menambahkan koneksi baru dan atur yang berikut:
Tes koneksi. Itu harus berhasil kemudian tekan OK.Viola!
sumber
Terkadang kunci yang dibuat oleh Putty tidak akan berfungsi. Gunakan ssh-keygen pada kotak Linux untuk membuat pasangan kunci. Salin konten id_rsa baru ke file teks pada Windows. Pastikan untuk menambahkan konten id_rsa.pub ke otor_keys di kotak Linux. Semua default lain di Workbench baik-baik saja termasuk 127.0.0.1 untuk Nama Host MySQL. Tentu saja harus Standar TCP / IP melalui SSH.
sumber
Saya menemukan kesalahan yang sama. Masalahnya adalah "agak" batas waktu. Saya menghidupkan nilai bahkan hingga 120 detik yang tidak membantu.
Dalam kasus saya, saya bisa menyelesaikannya dengan melakukan nslookup myserver.com dan menggunakan alamat IP alih-alih nama host. Asumsi saya adalah masalah saat mencoba terhubung dari IPv4 ke IPv6.
sumber
Baru saja mengalami masalah yang sama pada mesin Ubuntu yang terhubung ke server yang menjalankan versi MySQL 5.5.29 dan MySQL Workbench 5.2.40. Server SSH membutuhkan penggunaan ssh-key.
Saya tidak dapat terhubung ke server MySQL menggunakan pengguna root, sebaliknya saya harus membuat pengguna non-root terpisah untuk digunakan untuk login. Setelah itu saya bisa terhubung dengan baik.
Semoga ini membantu.
sumber
OK, saya tahu ini adalah pertanyaan lama, tapi saya mencabut rambut saya selama berjam-jam. Saya memeriksa semua yang disebutkan oleh Bruno dan Eye dan semuanya tampak bagus. Kemudian saya menyadari bahwa itu benar-benar kunci pribadi / publik. Jadi saya menyalakan Pageant dan menambahkan kunci pribadi saya, sehingga itu membuat kunci publik yang bisa dibaca oleh MySQL Workbench dan voila, terhubung! (Itu sebenarnya semacam antiklimaks ketika MySQL Workbench benar-benar mulai bekerja, tetapi dengan cara yang bahagia.)
TLDR: Gunakan Pageant untuk menghasilkan kunci publik dari kunci pribadi Anda.
sumber
Hanya apa yang saya temukan ... sering saya membuat pengguna di server SSH tanpa shell (seperti / sbin / nologin) untuk mencegah mereka dapat masuk ke server dan membuat file dan lain-lain di sana ... (untuk sistem produksi kami sedang melakukannya di firewall).
Di lingkungan Linux biasa setelah itu, Anda masih bisa meneruskan port setelah itu seperti:
dan setelah itu terhubung ke sana dari workstation lokal sebagai:
Tapi workbench memberikan kesalahan yang tidak bisa terhubung ke MySQL ... Jika Anda akan mengubah shell untuk pengguna itu, katakanlah, / bin / bash - semuanya berfungsi dengan baik setelah itu.
Tidak tahu mengapa Workbench membutuhkan shell lokal di server SSH jarak jauh.
sumber
Cukup buat kunci RSA baru dengan format yang benar untuk meja kerja mysql.
Sebagai contoh:
sumber