如何使用SSH隧道连接到远程MySQL服务器?

Dez*_*zie 1 ssh remote-access tunneling

我是第一次使用SSH隧道,所以我试图了解如何配置它.

我有一个远程Linux服务器,它托管我正在尝试连接的MySQL数据库.为了通过只识别本地数据库的软件直接访问MySQL数据库,我认为SSH隧道是设置访问权限的正确方法,对吗?

现在,我正在尝试在我的'home'计算机上设置隧道,该计算机正在运行试图访问MySQL数据库的软件.我的第一个问题是这是反向隧道还是正常隧道?其次,是本地隧道还是远程隧道?

最后,根据我的理解,我的代码应该看起来像

ssh -L 8080:mylinuxserver.mycompany.com:22 myuser@mylinuxserver.mycompany.com
Run Code Online (Sandbox Code Playgroud)

它是否正确?我的源端口'22'是因为我使用SSH并且是我的目标端口8080(或者有更合适的东西)?

当我尝试使用上面的代码时,我能够使用我的密码登录(因为我的密钥已经在MyLinuxServer中)但是当我ping localhost:8080时,它无法找到主机.

我究竟做错了什么?

sla*_*fer 5

我有一个远程Linux服务器,它托管我正在尝试连接的MySQL数据库

命令应该是:

ssh -L 8080:localhost:3306 myuser@mylinuxserver.mycompany.com
Run Code Online (Sandbox Code Playgroud)

哪里:

  1. 8080:是您工作站上的本地端口
  2. localhost:对应mylinuxserver.mycompany.com
  3. 3306:上面的MySQL端口localhost.

然后连接(从您的工作站)到MySQL:

mysql -h 127.0.0.1 --port=8080 
Run Code Online (Sandbox Code Playgroud)

此外,ping localhost:8080是错误的.Ping不能那样工作.