Mysql服务器没有密码,但密钥认证安全


Mysql server without password but key auth safe?

以下情况:我有点困惑。在CentOS 7上运行MariaDB,通过SSH连接有一些问题。注意到我已经为我的数据库用户设置了一个密码,我正在尝试连接私钥。我删除了密码[…]PASSWORD(") "),一切正常。

Mysql工作台正在连接:

  • SSH Hostname: Server-Public-IP:22
  • SSH Username: Dbuser
  • SSH密钥文件:/path/to/id_rsa.ppk
  • Mysql Hostname: 127.0.0.1
  • Mysql服务器端口:3306

如果我删除密钥文件并尝试连接它会给我一个错误:错误的身份验证类型。这正是我想要的。

我的网站位于服务器本身,在PHP我使用:

$mysqli->real_connect("127.0.0.1","Dbuser", "", "Dbname"); 

连接。这也非常有效。但是由于我没有使用

设置密钥文件
$mysqli->options(MYSQLI_SERVER_PUBLIC_KEY, '');

这让我想知道是不是每个人都可以通过SSH隧道连接到服务器。还是只能从服务器本身连接?(难道SSH隧道不就是这样吗?)

Mysql的权限是:

GRANT ALL PRIVILEGES ON *.* TO 'DBuser'@'127.0.0.1'

那么,它安全吗?

你的MySQL用户DBuser只允许ip 127.0.0.1连接