我在 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 的跳转服务器,这样这些客户端将通过它进行连接,这样就无需身份验证。