没有SSH访问的隧道连接到Mysql

时间:2013-06-24 13:43:26

标签: mysql ssh portforwarding tunnel

从我的本地计算机,我有SSH访问服务器A. 在服务器A上,我通过服务器B上的端口3306连接到服务器B上的mysql。

mysql -h <B.hostname>  -P 3306 -u <username> -p

我没有从本地计算机或服务器A对服务器B进行ssh访问。

我想要做的是从本地计算机访问服务器B上的mysql。我发现的每个隧道/端口转发链接都假设我可以ssh到服务器B中。

2 个答案:

答案 0 :(得分:3)

ssh -L采用本地端口,远程主机名连接连接到的连接的ssh服务器和远程端口。在这种情况下,您将运行:

ssh -L 3307:B.hostname:3306 A.hostname

这将使ssh连接到A,当您稍后使用本地mysql客户端(mysql -H localhost -P 3307 -u ...)连接到端口3307时,A的sshd将为您启动与B.hostname:3306的连接。

答案 1 :(得分:0)

听起来你必须使用远程端口转发。在您当地的主持人上试试这个:

[auto]ssh -R 1111:127.0.0.1:2222 -f -N -4Cp1234 username@servername.net

因此,您可以使用localhost:2222(本地计算机)获取localhost:1111上的所有内容(当您登录servername.net时),并在servername.net:1234上通过SSH传输流量。< / p>

如果您的“服务器A”可以某种方式访问​​“服务器B”,并且您可以通过SSH访问“服务器A”,这可能对您有帮助。