目的
“ssh端口转发”还有一个更加形象的名字,叫做”ssh隧道”,当然,只是纯粹的通过”ssh隧道”这几个字去理解它可能不太容易,我们来描述一些实际的场景,在这些场景中我们可能会遇到一些问题,而这些问题可以通过”ssh隧道”解决,通过这样的方式,我们反而更加容易理解”ssh隧道”是什么以及它的作用。
假如我们现在有两个台主机,主机A与主机B,主机A上安装有mysql客户端,主机B上安装有mysql服务端,现在,主机A中的mysql客户端需要与主机B中的mysql服务端进行通讯,则需要从mysql的客户端连接到mysql服务端。如下图所示

然而我们知道,mysql在传输数据时是进行明文传输的,如果主机A与主机B只能通过公网进行通讯,那么暴露在公网的mysql通讯是非常不安全的,所以,我们需要借助一些手段,提高访问mysql服务时的安全性,比如,我们可以使用SSL证书为数据加密,或者使用stunnel加密隧道,我们还可以使用VPN,当然,这些方法都不是这篇文章所要描述的重点,我们此处要总结的是”ssh隧道”这种方法,我们可以利用ssh,搭建出一条”通道”,然后将mysq的客户端与服务端通过这条”ssh通道”连接起来,如下图所示

mysql的客户端与服务端的连接方式从原来直连的方式变成了如上图所示的连接方式,它们之间并不直接进行通讯,而是借助ssh隧道将通讯数据转发,虽然仍然跨越了公网,但是由于ssh本身的安全特性,所以别人无法看到明文传输的数据,数据依靠ssh隧道实现了加密的效果,达到了保护数据安全的作用,提升了mysql的客户端与服务端通讯的安全性。
