it-swarm.asia

Tidak dapat terhubung ke database MySQL melalui SSH dengan Workbench

Saya mencoba untuk terhubung ke database saya melalui tunneling SSH dari salah satu server aplikasi web kami dengan MySQL Workbench. Inilah konfigurasi dasar; perhatikan bahwa saya mengubah beberapa nilai di tangkapan layar untuk alasan keamanan.

Workbench screenshot

Masalahnya adalah setiap kali saya mencoba untuk terhubung melalui terowongan SSH dari salah satu server aplikasi kami, saya mendapatkan kesalahan berikut:

Gagal terhubung ke us-east-1.amazonaws.com melalui terowongan SSH di computer.amazonaws.com dengan pengguna social_shop_prod. Tidak dapat terhubung ke server MySQL di 127.0.0.1.

Namun, jika saya menggunakan kredensial yang sama melalui SSH melalui baris perintah berikut:

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

Saya dapat terhubung dengan sukses dan mendapatkan perintah interaktif MySQL Prompt.

Telah berbicara dengan anggota tim pengembangan saya di sini dan tidak ada di antara kita yang bisa mengetahui mengapa saya tidak bisa menggali SSH dari server aplikasi kami dengan Workbench; tetapi ketika saya SSH ke salah satu server aplikasi kami dan terhubung ke MySQL melalui baris perintah; Saya dapat terhubung dengan sukses.

Dan mengapa itu mencoba menghubungkan lebih dari 127.0.0.1? Saya tidak menentukan itu dalam konfigurasi; file host saya juga tidak mengarahkan domain yang ditunjukkan di bawah ini ke IP itu.

Masukan konstruktif apa pun sangat dihargai.

10
Frank Rosario

Karena Anda terhubung melalui terowongan SSH, ini berarti bahwa port MySQL 3306 dari us-east-1.amazonaws.com dibuka secara lokal di komputer Anda. Alamat ip komputer Anda adalah 127.0.0.1 atau localhost. Saat Anda terhubung ke server mysql di us-east-1.amazonaws.com, Anda sebenarnya mengaksesnya melalui 127.0.0.1, mis. Komputer Anda. Jika Anda memiliki terowongan lain terbuka, atau MySQL berjalan secara lokal di komputer Anda, maka mungkin server MySQL lain yang menolak upaya otentikasi Anda

Ada beberapa tes yang bisa Anda coba:

1. Port apa yang Anda dengarkan di komputer Windows

Dari perintah Prompt: netstat -a (daftar semua port yang terbuka)

Di linux akan menjadi: netstat -tlpn

2. Tes konektivitas dasar

Dari perintah DOS Prompt atau konsol linux: telnet 127.0.0.1 3306

Jika Anda mendapatkan waktu istirahat, atau beberapa program lain merespons maka terowongan Anda tidak diatur dengan benar.

. Ubah nomor port yang dibuka MySQL Workbench secara lokal

Kami mengasumsikan bahwa meja kerja MySQL membuat terowongan di komputer Anda. Jika demikian, di meja kerja MySQL, coba tunneling melalui nomor port lain seperti 9000.

Pastikan bahwa 9000 tidak terdaftar sebagai port terbuka dari: netstat -a

Jika Anda memiliki akses ssh ke us-east-1.amazonaws.com

4. Coba sambungkan ke MySQL dari us-east-1.amazonaws.com

mysql -u myuser -h 127.0.0.1 -p

Dan seperti kata Rolando, Anda ingin memverifikasi bahwa Anda terhubung dengan kredensial yang tepat. Misalnya, jika Anda terhubung sebagai [email protected] dan Anda memiliki pengguna myuser tanpa Host, Anda mungkin tidak akan dapat terhubung menggunakan [email protected]

5
Craig Efrein

Alasan 127.0.0.1 dihubungi adalah karena terowongan menghubungkan port pada mesin lokal Anda ke Host jarak jauh. Pesan itu sepertinya menyarankan bahwa koneksi SSH tidak sedang dibuat.

Coba ini dari baris perintah:

ssh -L 33000:remotehost:3306 [email protected]

Pastikan SSH mengizinkan port yang diteruskan; jika Anda mendapatkan pesan yang menyatakan bahwa penyerang tidak diizinkan atau ditolak, maka itu sebabnya.

Untuk memperbaikinya, Anda harus mengubah konfigurasi server; tambahkan konfigurasi ini ke server SSH:

AllowTcpForwarding yes

Jangan lupa untuk me-restart server untuk mengaktifkan konfigurasi ini.

2
Mei

Saya terus berurusan dengan masalah ini selama hampir 2 minggu sekarang saya sudah berhasil mengaturnya. Saya akan mempostingnya di sini sehingga lebih banyak orang dapat mencobanya.

Ok, saya menggunakan OpenSSH (Win10 asli) dan Workbench 8.

Selangkah demi selangkah:
1. Tambahkan kunci Host SSH Anda ke agen menggunakan ssh-add.
2. Hasilkan pasangan kunci menggunakan ssh-keygen. Dalam kasus saya, file-file ini masuk secara otomatis ke Users/myUser/.ssh sesuai konfigurasi instalasi.
3. Tambahkan kunci publik ke file otor_keys (yang harus ada di dalam jalur instalasi server Anda, dalam kasus saya Windows/System32/OpenSSH/.ssh) tanpa ekstensi.
4. Tambahkan kunci yang dibuat Anda baru saja dibuat untuk agen menggunakan ssh-add.

Langkah-langkah di atas cukup banyak konfigurasi dari SSH Server baris perintah yang saya tahu OP sudah lakukan untuk koneksi-nya bekerja melalui terminal. Untuk mengkonfigurasi MySQL Workbench 8 Anda cukup banyak melakukan hal yang persis sama kecuali Anda harus mengonversi private_key.pem ke a Format OpenSSH sebelum memindahkannya ke Users/myUser/.ssh dan OpenSSH_instalation_path/.ssh

  1. Konversi private_key.pem ke format OpenSSH menggunakan PUTTYgen.
  2. Salin bidang "Kunci Publik untuk menempel ke OpenSSH official_keys" bidang.
  3. Simpan kunci publik di folder User/myUser/.ssh dan OpenSSH_instalation_path/.ssh
  4. Rekatkan kunci yang Anda salin dari Putty ke file otor_keys di file OpenSSH_instalation_path/.ssh folder.
  5. Ekspor kunci format OpenSSH ke User/myUser/.ssh.
  6. Mulai kembali layanan sshd dan mysql
  7. Konfigurasikan Workbench untuk terhubung ke server SSH menggunakan kunci pribadi yang dikonversi.

UPDATE: Anda perlu mengatur yang berikut ini di file sshd_config Anda:

PermitRootLogin tanpa kata sandi
PubkeyAuthentication ya
Kata sandi Otentikasi no
PermitEmptyPasswords no
AllowTcpForwarding ya

HARAP BACA:

Saya seorang analis yang tidak berpengalaman, jadi jika pengguna yang lebih mahir tahu di antara dua folder .ssh mana yang benar, beri tahu kami. Saya menemukan OpenSSH agak ambigu tentang ini.
Ini berfungsi untuk saya saat menetapkan lingkungan pengembangan lokal menggunakan localhost saja. Hanya untuk tujuan belajar.
Anda mungkin ingin menambahkan myUser @ localhost ke pengguna MySQL Workbench sebelum menguji koneksi.
Jika benar-benar diperlukan saya dapat menambahkan gambar.

1
Rafael Corrêa

Saya memiliki masalah yang sama, dan ini mungkin tidak sopan, tetapi periksa aturan firewall Anda di AWS. Saya memiliki rangkaian rentang IP, untuk membatasi koneksi dari dunia luar. Dan IP di kantor saya berubah, jadi ada di luar kisaran IP. Rekan saya di kantor lain masih bisa terhubung, jadi saya pikir masalahnya ada di PC saya, tetapi masalahnya ada pada aturan firewall di AWS. Semoga itu bisa membantu seseorang :)

0
Asped

Dalam kasus saya masalah saya harus beralih kembali ke nama domain atau IP yang valid bukannya Host kustom Host lokal diselesaikan.

Resolusi Host Kustom gagal (/etc/hosts)

Saya bekerja dengan mekanisme resolusi host lokal yang didefinisikan:

#.#.#.#    my-vm

Untuk beberapa alasan dengan MySQL 5.2.47 Pada Linux Mint 14 (Nadia) yang mirip dengan Ubuntu 12.10 (Quantal) the mekanisme resolusi tidak bekerja.

Larutan

Cukup beralih ke nama domain publik seperti my-website.com Pecahkan masalah.

0
Édouard Lopez

Lihat di sini untuk daftar sumber daya untuk menghubungkan ke berbagai target (Amazon RDS, Amazon EC2, Windows Azure, dan lainnya): http://forums.mysql.com/read.php?152,252640,252640#msg -25264 .

0
Mike Lischke