Navicat 或 MySQL Workbench 带 MFA 的 SSH 隧道

Navicat or MySQL Workbench SSH Tunnel with MFA

是否可以使用 Navicat 或 MySQL workbench(或任何其他工具)通过像堡垒主机一样的跳转箱连接到 Amazon RDS?

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

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

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

我什至无法使用与 terminal/command 行中使用的完全相同的凭据从 Navicat 连接到我的堡垒机。我收到错误:

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

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

我是否需要在我的堡垒盒上进行任何其他配置才能完成这项工作,或者这根本不可能吗?

事实证明我的 sshd 配置没有问题,但是,我确实返回并使用 MFA 启用了自动推送。

Navicat

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

MySQL Workbench / Sequel 临

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

IntelliJ

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


- - - - - 旋转 IP 错误 - - - - -

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

的复选框

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

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

您可以在 Host 部分使用尽可能多的通配符,这很好。因此,请根据您的需要对其进行自定义。现在您不需要检查 ssh 密钥,但它比必须每天(或 IP 轮换的频率)删除 ~/.ssh/known_hosts.

中的端点条目要好

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