如何在 Windows 上使用 SSH/SCP 自动进行 2FA(最好使用 PuTTY+WinSCP)?

如何在 Windows 上使用 SSH/SCP 自动进行 2FA(最好使用 PuTTY+WinSCP)?

我在 Windows 10 上使用 PuTTY 和 WinSCP 通过 SSH/SCP 连接到具有双因素身份验证 (2FA) 的 Linux 服务器。每次登录时,它都会要求我输入密码和验证码。我目前使用 Chrome 扩展程序“Authenticator”来获取一次性代码,但其他选项也是可行的。我如何自动化 PuTTY 和 WinSCP 以自动获取和使用 2FA 代码,并且理想情况下始终保持登录状态?

我对远程服务器没有太多的控制权 --- 尽管我可能会要求系统管理员在必要时进行更改。

答案1

WinSCP 和 PuTTY 都没有提供自动化 2FA 身份验证的方法。

即使他们有,问题在于向您提供代码的系统(您没有告诉我们任何信息)是否允许您自动获取代码。这有点违背了其目的。

答案2

一个可能的解决方案是,如果您的客户端 IP 地址是静态的,则在 Linux 服务器上设置 SSH 以跳过对您的 IP 的授权。

帖子 SSH Google Authenticator 忽略/白名单 ips 有这个 回答

在“/etc/pam.d/sshd”中

auth [success=1 default=ignore] pam_access.so accessfile=/etc/security/access-local.conf
auth required pam_google_authenticator.so

然后在“/etc/security/access-local.conf”

#localhost doesn't need two step verification
+ : ALL : 192.168.1.0/24
+ : ALL : LOCAL
+ : ALL : YOURIPHERE
#All other hosts need two step verification
- : ALL : ALL      Don't forget to restart ssh.

除了 IP 地址,我看不出还有别的方法来区分客户端。您可以考虑使用具有静态 IP 的跳转服务器,这样这些客户端将通过它进行连接,这样就无需身份验证。

相关内容