我有一个Ubuntu的服务器,我已经locking只有HTTP,HTTPS和SSH(端口30000)。 在这个盒子里我有一个MySQL服务器,其中99.9%的时间只在本地使用。 我偶尔想用GUI工具连接到MySQL实例,但不要触摸防火墙。
因此,可以设置一些东西,以便我可以通过SSH连接连接到MySQL盒子? 有什么港口转发魔术我可以做吗?
ssh -L localport:127.0.0.1:remoteport user@remotehost
其中localport
是本地系统上的未绑定端口, remoteport
是MySQL侦听的端口, 127.0.0.1
是远程系统上的环回地址, user
是您的用户名, remotehost
是远程系统的地址。
然后把你的MySQL客户端指向127.0.0.1:localport
。 连接将通过SSH隧道转发到远程端口。
如果您在本地机器上使用Windows或Unix,PuTTY是一个很好的工具。 这是一个关于端口转发的教程:
http://www.cs.uu.nl/technical/services/ssh/putty/puttyfw.html
使用SSH客户端建立隧道,将本地端口通过隧道映射到远程机器上的端口,然后使用客户端连接到本地端口。
man ssh
将有血淋淋的细节,但你可能会更好地在网上搜索一些更容易阅读的东西。
如果你在Windows上,我会建议使用HeidiSQL 。 它自己处理SSH隧道(你只需要下载plink.exe工具)。
在我看来,这是最好的MySQL工具(它是免费的,开源的)。
在SQLyog中的SSH / HTTP隧道是好的。 有公钥/私钥认证,增加了额外的安全层。
有两种方法可以在远程MYSQL机器上使用GUI mysql工具。
我假设远程机器正在运行Linux。
选项1。
SSH端口转发。
ssh -L 3306:代理:3306用户名@远程主机
基本上,您将本地计算机上的端口3306转发到远程计算机上的3306,然后告诉图形MYSQl工具连接到localhost:3306,并假设您的远程计算机正在监听3306的标准端口
http://magazine.redhat.com/2007/11/06/ssh-port-forwarding/
另外ssh -D 3306 username @ remotehost应该是类似的
选项2。
如果您正在远程计算机上运行xserver,并在远程计算机上安装了GUI工具,则可以通过SSH连接将您的GUI隧道化。
ssh -X username @ remotehost,然后从命令行在远程机器上启动GUI工具。
我建议期待phpMyAdmin一个基于Web的工具来管理MySQL ,是非常好的(需要PHP)。 它可以通过普通的Ubuntu方法来安装(例如Synaptic)
或者,如上所述,使用SSH进行隧道连接。