Me gustaría establecer un túnel ssh sobre ssh en mi servidor mysql.Conectarse a un servidor MySQL a través de SSH en PHP
Idealmente, devolvería un puntero mysqli db como si me estuviera conectando directamente.
Estoy en un host compartido que no tiene las bibliotecas SSH2, pero podría instalarlas localmente usando PECL.
Si hay una forma de utilizar comandos nativos que sería genial.
Estaba pensando algo como esto, pero sin esas bibliotecas no funcionará.
$connection = ssh2_connect('SERVER IP', 22);
ssh2_auth_password($connection, 'username', 'password');
$tunnel = ssh2_tunnel($connection, 'DESTINATION IP', 3307);
$db = new mysqli_connect('127.0.0.1', 'DB_USERNAME', 'DB_PASSWORD',
'dbname', 3307, $tunnel)
or die ('Fail: ' . mysql_error());
¿Alguien tiene alguna idea? Estoy ejecutando un host de CentOS linux compartido en liquidweb.
¿Alguna idea de hacer que el túnel sea persistente? ¿Es posible establecerlo con otro script y solo aprovecharlo en PHP
?
Gracias.
Te das cuenta de que todos los demás en ese host compartido también podrán hacer conexiones a tu base de datos, ¿verdad? – Zoredache
Todavía requeriría un nombre de usuario y contraseña válidos para conectarse, pero es un riesgo definitivo. ¿Sería ese el caso si el túnel fuera creado por ejecución en php? –
Eliminé mi respuesta anterior, ya que al leer la documentación me di cuenta de que estaba mucho más involucrado de lo que pensaba para que mysqli utilizara SSL. – Powerlord