开启MFA的堡垒机SSH隧道下Navicat/MySQL Workbench连接Amazon RDS问题
解决方案
报错根因
Access denied for 'none'. Authentication that can continue: keyboard-interactive (11)报错的核心原因是数据库客户端的SSH隧道配置未启用键盘交互认证模式,堡垒机的MFA校验需要通过该模式接收用户输入的验证码,未开启时客户端不会响应堡垒机的MFA校验请求,直接被拦截。无需修改堡垒机侧的认证配置,仅调整客户端设置即可实现需求。
各主流客户端配置方法
Navicat 配置步骤
- 打开对应数据库连接的编辑界面,切换到「SSH」选项卡
- 确认主机、端口、用户名、密码(或私钥)配置和终端SSH命令参数一致
- 找到「认证方法」区域,勾选键盘交互(部分旧版本Navicat显示为「尝试键盘交互认证」),优先级可以设为和密码/公钥同级
- 保存配置后重新连接,弹出验证码输入框时输入你的MFA动态码即可完成认证,后续隧道建立后会自动连接RDS
MySQL Workbench 配置步骤
- 新建连接,连接方法选择「Standard TCP/IP over SSH」
- 填写SSH主机名、SSH用户名、SSH密码(或SSH密钥文件)
- 点击「Advanced」选项卡,在「Others」区域添加配置:
ssh_auth_method=keyboard-interactive - 填写MySQL侧的主机名(填RDS的Endpoint)、端口、用户名、密码
- 测试连接时按提示输入MFA动态码即可
通用替代方案(适配所有不支持键盘交互的客户端)
如果碰到小众数据库工具确实不支持键盘交互认证,可以沿用终端提前建立SSH隧道的方式使用:
- 终端执行你当前的隧道建立命令:
ssh -A <my_user>@<bastion_endpoint> -L 3306:<RDS_ENDPOINT>:3306,完成MFA校验后保持终端窗口后台运行 - 数据库工具直接连接
localhost:3306,输入RDS的账号密码即可访问,无需再配置工具侧的SSH隧道
内容的提问来源于stack exchange,提问作者wesleywh
相关产品推荐
相关产品推荐

