带有 MFA 的 Navicat 或 MySQL Workbench SSH 隧道

Posted

技术标签:

【中文标题】带有 MFA 的 Navicat 或 MySQL Workbench SSH 隧道【英文标题】:Navicat or MySQL Workbench SSH Tunnel with MFA 【发布时间】:2021-11-10 01:32:39 【问题描述】:

是否甚至可以使用 Navicat 或 mysql 工作台(或任何其他工具)通过像堡垒主机这样的跳转框连接到 Amazon RDS?

如果我像这样在终端中手动打开 ssh 隧道,我可以这样做:

ssh -A <my_user>@<bastion_endpoint> -L 3306:<RDS_ENDPOINT>:3306

然后从 mysql 工具连接到localhost:3306,这样就可以了。重要的是要知道在堡垒上需要 MFA 才能登录。

我什至无法使用与终端/命令行中使用的完全相同的凭据从Navicat 连接到我的堡垒机。我得到了错误:

Access denied for 'none'. Authentication that can continue: keyboard-interactive (11)

所以我去了堡垒箱并从身份验证方法中删除了keyboard-interactive,它可以工作。但是,这显然会破坏我正在使用的 MFA,所以这不是一个选择。

我是否需要在堡垒机上进行任何其他配置才能使其正常工作,或者这根本不可能?

【问题讨论】:

【参考方案1】:

事实证明我的 sshd 配置很好,但是,我确实返回并启用了 MFA 自动推送。

Navicat

如果为 MFA 禁用自动推送,您需要选择 Password and Public Key(即使我们在这里只使用公钥)。在密码字段中,如果启用了自动推送,它可以是空白的,否则在此处输入您想要通知的选择编号(没错,它不是普通密码,我知道愚蠢)。然后只需使用您的普通私钥和密码作为私钥,它应该可以正常连接。

MySQL Workbench / Sequel Pro

必须拥有自动推送或类似功能才能使用 MFA。如果我没有启用自动推送,它将无法连接。再次使用Password and Public Key。实例的密码为空,然后它只是普通的公钥和您的公钥的密码。

IntelliJ

这样更好。如果您没有启用自动推送,它将与 MFA 选项一起使用。与其他人不同,您可以选择Public Key 选项而不是Password and Public Key,它应该可以连接并正常工作。


- - - - - 轮换 IP 错误 - - - - -

现在不幸的是,如果你有一个恒定的端点,并且在它下面有一个旋转的 IP(就像我做的那样),你会在 ssh 中遇到令人讨厌的“中间人”可怕错误。如果是这种情况,只有 IntelliJ 提供忽略 StrictHostSSHKeyChecking 的复选框。

因此,要仅针对此特定端点解决此问题,您可以强制忽略 SSH 密钥检查。为此,请将以下条目添加到您的 ~/.ssh/config 文件中:

# changing IPs
Host my-custom-host.com
    StrictHostKeyChecking no
    UserKnownHostsFile /dev/null

您可以在Host 部分使用尽可能多的通配符,这很好。所以根据你的需要定制它。现在您无需检查 ssh 密钥,但总比必须每天(或 IP 轮换的频率)删除 ~/.ssh/known_hosts 中的端点条目要好。

希望这有助于减轻某人的痛苦。

【讨论】:

以上是关于带有 MFA 的 Navicat 或 MySQL Workbench SSH 隧道的主要内容,如果未能解决你的问题,请参考以下文章

带有 SMS MFA 的无密码 Cognito

通过自适应 MFA 提高 IT 安全性

详说 Navicat for MySQL 快捷键

使用navicat for mysql或SQLyog连接阿里云等服务器的mysql

Webauthn - 添加第二个 MFA 设备

Navicat for MySQL 都有哪些常用功能