2009-05-13 12 views
9

Tengo un servidor ubuntu que he bloqueado solo para HTTP, HTTPS y SSH (puerto 30000). En este cuadro tengo un servidor MySQL que el 99.9% del tiempo solo se usa localmente. De vez en cuando me quiero conectar a la instancia de MySQL con las herramientas de la GUI, pero sin tocar el firewall.¿Puedo SSH a MySQL con las herramientas GUI?

Por lo tanto, es posible configurar las cosas para que pueda conectarme a la caja MySQL con la conexión SSH? ¿Hay algún tipo de magia de reenvío de puertos que pueda hacer?

+0

Qué herramientas de interfaz gráfica de usuario? –

+0

Las herramientas de MySQL disponibles en el sitio web de MySQL: un administrador y un analizador de consultas –

+0

MySQL workbench –

Respuesta

12
ssh -L localport:127.0.0.1:remoteport [email protected] 

donde localport es un puerto sin consolidar en el sistema local, remoteport es el puerto en el que escucha MySQL, 127.0.0.1 es la dirección de bucle de retorno en el sistema remoto, user es su nombre de usuario y remotehost es la dirección del control remoto sistema.

Luego dirija su cliente MySQL al 127.0.0.1:localport. La conexión se reenviará a través del túnel SSH al puerto remoto.

+0

Si mi puerto SSH remoto es 30000, mi puerto MySQL es 3306 (dentro del firewall) y tengo 22 abiertos en mi máquina que puedo usar : ssh -L 22: my_remote_address: 3306 user @ my_remote_address -p 30000 ? –

+0

No. No podrá asignar 3306 en la máquina remota a 22 en la máquina local. Tendría que ser root en la máquina local y sería confuso también. Cualquier número> = 1024 debería estar bien, sin embargo. – innaM

3

Configurar un túnel usando el cliente SSH para mapear un puerto local, a través del túnel, a un puerto en la máquina remota, a continuación, conectarlo al puerto local utilizando el cliente.

man ssh tendrá los detalles sangrientos, pero es probable que sea mejor buscar algo un poco más fácil de leer en la web.

0

Hay dos maneras de utilizar las herramientas de GUI mysql en una máquina MYSQL remota.

Supongo que la máquina remota ejecuta Linux.

Opción 1.

SSH reenvío de puertos.

ssh -L 3306: Proxy: 3306 Nombre de usuario @ remotehost

Básicamente puerto delantero 3306 en el equipo local para 3306 en la máquina remota, a continuación, le dice a su herramienta de gráficas de MySQL para conectarse a localhost: 3306 y asuma que su máquina remota está escuchando en el puerto estándar de 3306

http://magazine.redhat.com/2007/11/06/ssh-port-forwarding/

también ssh -D 3306 usuario @ remotehost debe ser similar

Opción 2.

Si está ejecutando xserver en su máquina remota y tiene instaladas las herramientas de la GUI en su máquina remota, puede tunelizar su GUI a través de la conexión SSH.

ssh -X username @ remotehost y luego inicie las herramientas de su GUI en la máquina remota desde la línea de comandos.

2

Sugeriría usar HeidiSQL si está en Windows. Maneja el túnel SSH solo (solo necesita descargar la utilidad plink.exe).

En mi humilde opinión, es la mejor herramienta de MySQL que existe (y es gratuita y de código abierto).

1

El túnel SSH/HTTP en SQLyog es bueno. Hay autenticación de clave pública/privada que agrega una capa adicional de seguridad.

enter image description here

Cuestiones relacionadas