纯ssh工具无法连接数据库?

作者站长头像
站长
· 阅读数 5

华为云部署了一个redis服务,22、6379端口均已暴露,使用专门数据库连接软件可以正常连接,但是纯ssh工具无法连接数据库

想问一下,数据库连接必须用数据库连接工具吗?市面上普通ssh连接工具能否做到直接与数据库连接而不连接服务器?

回复
1个回答
avatar
test
2024-07-05

此 SSH 非彼 SSH。

MySql / Redis 之类的那个 SSH 连接时指用“SSH 隧道”(SSH Tunnel),通俗的讲就是端口转发。

并不是真的用 SSH 访问的 MySql / Redis。


你要想用终端来执行同样的操作的话,其实是分为两步:

# 建立 SSH 隧道,变量是啥含义应该不用解释吧?
ssh -fNTL <LOCAL_PORT>:<REMOTE_REDIS_ADDR>:<REMOTE_REDIS_PORT> <REMOTE_SSH_USERNAME>@<REMOTE_SSH_ADDR>
# 正常访问,注意此时访问用的是本地地址和端口
redis-cli -h 127.0.0.1 -p <LOCAL_PORT>

SSH 在这里起到的仅仅是一个代理的作用,实质通信还是 MySql / Redis 本身的那套通信协议。


P.S. 我猜你是这么用的?

ssh -p <REMOTE_REDIS_PORT> <REMOTE_SSH_USERNAME>@<REMOTE_REDIS_ADDR>

那当然不对了,redis-server 人家又不认识 SSH 协议……😂

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容