I’d like to establish an ssh tunnel over ssh to my mysql server.
Ideally I’d return a mysqli db pointer just like I was connecting directly.
I’m on a shared host that doesn’t have the SSH2 libraries but I might be able to get them installed locally using PECL.
If there’s a way that uses native commands that would be great.
I was thinking something like this, but without those libraries it won’t work.
$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());
Anyone have any ideas? I’m running a shared CentOS linux host at liquidweb.
Any thoughts on making the tunnel persistent? Is it possible to establish it with another script and just take advantage of it in PHP?
Thanks.
Eric,
I think you are out of luck on this one. You can either use the ssh extension in your PHP code, or if you have access to the server, you could try to create a ssh tunnel on the command-line.
You probably need special permissions to do that, though. It also looks like you don’t have ssh access to this hosting account.
–Joao