如何在 PuTTY 或 mRemoteNG 中使用多因素身份验证保存 SSH 隧道设置?

如何在 PuTTY 或 mRemoteNG 中使用多因素身份验证保存 SSH 隧道设置?

我们公司管理着数百台 Linux 服务器,如果能使用 mRemoteNG 这样的工具来保持它们的有序运行就好了。

问题是,我们所有的服务器都在私有网络内,只能通过网关服务器连接。为此,我们使用 SSH 隧道。

有一些工具可以在连接到服务器之前保存隧道配置文件,但我们的网关服务器具有双因素身份验证检查(SSH 键盘交互式身份验证),大多数工具似乎都被阻止了。

有没有办法设置 PuTTY 或任何其他工具来识别隧道上的 2-FA,以便我可以在继续之前确认验证码?

我知道这是可能的,因为 WinSCP 在其 SSH 文件传输协议 (SFTP) 连接上执行此操作:

WinSCP认证过程

答案1

我可以看到三个选项(使用 PuTTY)。


两种概况

一个(可能很明显的)简单解决方案(虽然不是那么用户友好)是在 PuTTY 中创建两个配置文件。

  1. 隧道配置文件,打开与中间服务器的连接,并转发本地端口到目标服务器。
  2. 连接到转发端口的配置文件。

使用 WinSCP

由于您已经在使用 WinSCP,您可以将其用作PuTTY 的连接管理器

使用 WinSCP(在后台转发端口)连接到目标服务器后,只需使用“在 PuTTY 中打开”命令通过 WinSCP 打开的隧道打开 PuTTY 与目标服务器的连接。

(对于隧道连接,遗憾的是你不能使用“在 PuTTY 中打开”直接关闭登录对话框


具有 GUI 身份验证的本地代理命令

在 PuTTY 中,您可以使用以下方式创建具有隧道功能的配置文件“本地代理命令”在该命令中,您可以使用plink工具(来自 PuTTY 包)使用以下命令创建隧道-nc转变

通常,代理命令不能有任何 UI(因为它是一个隐藏的控制台应用程序),因此需要公钥身份验证(没有提示)。但通常情况下,你需要一些GUI 用于身份验证,有 Plink 的克隆版本使用 GUI 进行身份验证。这些版本通常与版本控制软件(如 Git、SVN、CVS)一起使用,这些版本控制软件在内部使用这些 Plink 克隆版本作为 SSH 传输。

例如,你可以TortoisePlink.exeTortoiseSVN 项目,可以创建一个代理命令,例如:

C:\\path\\TortoisePlink.exe %user@%proxyhost -nc %host:%port

(请注意路径中的双反斜杠)

在此处输入图片描述

以上内容将为您带来如下体验:

在此处输入图片描述

相关内容