带有 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 隧道的主要内容,如果未能解决你的问题,请参考以下文章