No puedo conectarme usando una conexión TCP / IP a través de SSH en MySQL Workbench desde una PC. ¿Que esta pasando?
Creé una base de datos MySQL 5.1 en un servidor Ubuntu mysql.myhost.com . Puedo acceder a él localmente. MySQL Workbench (PC) ofrece hacer una conexión a través de TCP a través de ssh. Se ejecuta en el puerto 3306 en el servidor remoto donde la línea de comandos mysql funciona bien.
Usé los siguientes detalles de la sesión:
- Método de conexión: TCP / IP sobre SSH.
- Nombre de host SSH: mysql.myhost.com : 3306
- Nombre de usuario SSH: mi inicio de sesión de Linux
- Archivo de clave pública SSH: mi archivo de clave pública local
- Nombre de host de MySQL: 127.0.0.1 MySQL
- Puerto del servidor: 3306
- Nombre de usuario: root
Recibo un mensaje de error cuando intento conectarme: "Error al conectarme a MySQL en 127.0.0.1:3306 a través del túnel SSH en mysql.myhost.com con usuario root"
"No se puede conectar al servidor MySQL en '127.0.0.1' (10061)"
Como otra prueba, configuré un túnel SSH con el puerto 3306 usando Putty y puedo conectarme bien usando MySQL Workbench a través de ese túnel que reenvía las conexiones a mi 3306 local al servidor remoto como se describió anteriormente. Pero no puedo hacer que "TCP / IP sobre SSH" funcione en Workbench.
Pregunta secundaria: cuando Workbench pregunta "Ruta al archivo de clave pública SSH", ¿realmente no necesita mi archivo de clave privada?
fuente
Respuestas:
Me topé con esta pregunta cuando me encontré con este error. Finalmente pude averiguar la configuración.
Finalmente tengo lo siguiente ingresado en MySQL WorkBench.
Lo único que le queda es configurar correctamente su servidor SSH para que funcione con claves en lugar de contraseñas. Espero que esto ayude a alguien.
fuente
AuthorizedKeysFile /home/root/.ssh/authorized_keys
y que los claves_autorizadas tenían mi clave PUBLIC como entrada.AllowTcpForwarding yes
se aplica al servidor remoto, es decir, el host que tiene la instancia de MySQL a la que intentamos conectarnos; o la máquina local con MySQL Workbench instaladoAllowTcpForwarding
entradaCreo que el enfoque TCP / IP sobre SSH funciona mediante el establecimiento de una conexión SSH "normal" subyacente a la conexión MySQL (de la misma manera que lo haría
-L
con el cliente de línea de comandos OpenSSH).Por lo tanto, deberá especificar una conexión a un servidor SSH en el servidor a través del cual está estableciendo el túnel. Aquí, parece estar usando
mysql.myhost.com:3306
, lo que implicaría que está ejecutando este servidor SSH (no MySQL) en el puerto 3306.Es posible vincular un servidor MySQL en 127.0.0.1:3306 y un servidor SSH en su dirección IP externa para
mysql.myhost.com
el puerto 3306, pero eso es muy poco probable. Supongo que su servidor SSH está escuchando en el puerto 22 (el predeterminado).Probablemente deberías usar
mysql.myhost.com:22
. (Compruebe que también puede conectarse a través de un cliente SSH normal como Putty).fuente
Es posible que deba verificar los usuarios en la tabla mysql.user.
Ejecute esta consulta:
Debería ver algo como esto:
Por favor informa eso
Si desea que la raíz se conecte a través de TCP / IP, debe especificar la dirección IP o el bloqueo de red para un usuario raíz.
Algo como esto:
o si la contraseña de root es la misma para root @ localhost entonces
PRUEBA: root @ '%' normalmente no se recomienda. Tal vez intente root@'10.% 'o cualquier otro netblock para root.
Darle una oportunidad !!!
fuente
...@localhost
funcionar a través del túnel SSH, ya que en lo que respecta al servidor MySQL, la conexión proviene del final del túnel?Es posible que esté utilizando una versión anterior de MySQL Workbench y necesite actualizar. Este es un error en la versión 6.0.8, que actualmente es la versión en los repositorios de Ubuntu. La actualización a la versión 6.3.6 me arregló esto.
Descargas aquí: http://dev.mysql.com/downloads/workbench/#downloads
fuente
Una cosa que no se menciona en ninguna otra respuesta es la importancia del formato OpenSSH para la clave como se indica en SO ( https://stackoverflow.com/questions/34504232/mysql-workbench-failing-to-connect-via- ssh-due-to-key / 38108623 # 38108623 ).
A pesar de la respuesta allí, pude usar una clave protegida por contraseña con MySQL Workbench 6.3.7 (64 bits, Windows 10).
fuente
Mi problema se debió al hecho de que estaba tratando de usar un
ed25519
clave SSH. Noté este error en el servidor SSH enauth.log
:Una vez que cambié a usar una clave RSA, todo funcionó como se esperaba.
fuente
Estás intentando conectarte al servidor a través de ssh pero estás usando el puerto mysql. El puerto que desea es el que esté escuchando su servidor ssh, generalmente 22, luego localhost y 3306 para mysql hostname y puerto.
fuente
Me enfrenté al mismo problema. Verifiqué e intenté configurar AllowTcpForwarding Sí, pero faltaba en mi sshd_config, así que no hay ayuda. asegúrese de que el nombre de host ssh NO sea el mismo que el nombre de host mysql (use localhost).
En workbench, elija + para agregar una nueva conexión y configure lo siguiente:
Conexión de prueba. Debería tener éxito y luego presionar OK.Viola!
fuente
A veces las claves creadas por PuTTY no funcionan. Use ssh-keygen en el cuadro de Linux para crear un par de claves. Copie el contenido de la nueva id_rsa a un archivo de texto en Windows. Asegúrese de agregar el contenido de id_rsa.pub a Authorizedkeys en el cuadro de Linux. Todos los demás valores predeterminados en Workbench están bien, incluido 127.0.0.1 para MySQL Hostname. Por supuesto, tiene que ser TCP / IP estándar sobre SSH.
fuente
Se me ocurrió el mismo error. El problema es "algo" el tiempo de espera. Arranqué incluso el valor de hasta 120 segundos que no ayudó.
En mi caso, podría resolverlo haciendo un nslookup myserver.com y usando la dirección IP en lugar del nombre de host. Mi suposición es un problema al intentar conectarse de IPv4 a IPv6.
fuente
Acabo de tener este mismo problema en la máquina Ubuntu que se conecta a un servidor que ejecuta MySQL versión 5.5.29 y MySQL Workbench 5.2.40. El servidor SSH requiere el uso de una clave ssh.
No pude conectarme al servidor MySQL usando el usuario root, en su lugar tuve que crear un usuario no root separado para usar para el inicio de sesión. Después de eso pude conectarme bien.
Espero que esto ayude.
fuente
OK, sé que esta es una vieja pregunta, pero me saqué el pelo por horas. Revisé todo lo mencionado por Bruno y Eye y todo parecía estar bien. Entonces me di cuenta de que realmente era una clave privada / pública. ¡Así que encendí el concurso y agregué mi clave privada, para que creara una clave pública que MySQL Workbench pudiera leer y listo! (En realidad, fue un poco anticlimático cuando MySQL Workbench comenzó a funcionar, pero de una manera feliz).
TLDR: utilice el concurso para generar una clave pública a partir de su clave privada.
fuente
Solo lo que encontré ... a menudo estoy creando usuarios en el servidor SSH sin shell (como / sbin / nologin) para evitar que puedan iniciar sesión en un servidor y crear archivos y etc. allí ... (para sistemas de producción lo estás haciendo en cortafuegos).
En un entorno Linux normal después de eso, aún puede reenviar puertos después de eso, como:
y luego conéctese desde la estación de trabajo local como:
Pero el banco de trabajo da un error de que no se puede conectar a MySQL ... Si va a cambiar el shell para ese usuario, digamos, / bin / bash, todo funciona bien después de eso.
No tengo idea de por qué Workbench requiere un shell local en el servidor SSH remoto.
fuente
Simplemente cree una nueva clave RSA con el formato correcto para mysql workbench.
Por ejemplo:
fuente