没有密码但密钥身份验证安全的Mysql服务器?

Posted

技术标签:

【中文标题】没有密码但密钥身份验证安全的Mysql服务器?【英文标题】:Mysql server without password but key auth safe? 【发布时间】:2017-01-29 18:36:09 【问题描述】:

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

mysql Workbench 正在连接:

SSH 主机名:Server-Public-IP:22 SSH 用户名:Dbuser SSH 密钥文件:/path/to/id_rsa.ppk Mysql 主机名:127.0.0.1 Mysql 服务器端口:3306

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

我的网站位于服务器本身,我使用的是 php

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

连接。这也很有效。但是由于我没有用

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

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

DBuser 的 Mysql 权限是:

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

那么,它安全吗?

【问题讨论】:

【参考方案1】:

您的 MySQL 用户 DBuser 只允许 ip 127.0.0.1 连接, 这样你的 MySQL 只允许你的 MySQL 数据库服务器所在的地方连接它。

【讨论】:

以上是关于没有密码但密钥身份验证安全的Mysql服务器?的主要内容,如果未能解决你的问题,请参考以下文章

mysql数据库没有客户端身份验证插件怎么解决

开放式身份验证需要密码。 预共享密钥不需要密码。

存储密钥库密码的位置?

是否可以使用用于登录的 ssh 密钥在第三方应用程序中对用户进行身份验证?

远程访问安全-SSH

PHP Session 安全密钥步骤