用SSH隧道进行安全的TCP/IP连接

背景信息

为了保证服务器和客户端之间的安全通讯,可以在服务器和客户端之间构建安全的SSH隧道。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。

从SSH客户端来看,SSH提供了两种级别的安全验证:

  • 基于口令的安全验证:使用帐号和口令登录到远程主机。所有传输的数据都会被加密,但是不能保证正在连接的服务器就是需要连接的服务器。可能会有其他服务器冒充真正的服务器,也就是受到“中间人”方式的攻击。
  • 基于密钥的安全验证:用户必须为自己创建一对密钥,并把公用密钥放在需要访问的服务器上。这种级别的认证不仅加密所有传送的数据,而且避免“中间人”攻击方式。但是整个登录的过程可能需要10秒。

前提条件

SSH服务和数据库运行在同一台服务器上。

操作步骤

以OpenSSH为例介绍配置SSH隧道,对于如何配置基于密钥的安全验证不作赘述,OpenSSH提供了多种配置适应网络的各种限制,更多详细信息请参考OpenSSH的相关文档。

从本地主机建立到服务器的SSH隧道。

  1. ssh -L 63333:localhost:8000 username@hostIP

用SSH隧道进行安全的TCP-IP连接 - 图1 说明:

  • -L参数的第一串数字(63333)是通道本端的端口号,可以自由选择。
  • 第二串数字(8000)是通道远端的端口号,也就是服务器使用的端口号。
  • localhost是本机IP地址,username是要连接的服务器上的用户名,hostIP是要连接的主机IP地址。