我正在使用 WinSCP 通过 SFTP 连接到启用了双因素身份验证的 Linux 服务器。连接时,我必须在手机上确认连接。每次文件传输也算作一个单独的“连接”,因此对于每个文件,我都必须检查手机并批准操作。
有什么方法可以保持连接“活跃”,以便我每次想要进行传输时不需要重新连接?这个问题似乎类似,但未得到解答,并特别提到了 Google 双因素。(作为参考,我的服务器使用 Duo Security,如果这有区别的话。)
答案1
您可以尝试使用可以记住您的凭据的代理,例如 Pageant,它通常与 WinSCP 一起安装。根据特定的 2FA 实施以及 2FA 实际保护的内容,这可能会或可能不会解决问题。
如果这不起作用——很可能不会——您只能将 WinSCP 限制为单个连接。不幸的是,这会在一定程度上限制 WinSCP 的功能:后台传输将不再起作用。这会产生一些影响:
- 在任何上传/下载操作正在进行时,您将无法浏览文件系统。
- SSH 操作(例如创建 tarball 的快捷方式)仍需要单独的连接,这意味着您必须再次进行身份验证。
- 您每次只能传输一个文件。
- 您每次只能排队一个对象(文件或目录)——也就是说,不再有队列。所有操作都在前台进行,您必须等待其完成后才能继续。
要切换此状态,您需要完全禁用后台传输。这并不像想象的那么简单;您需要在两个地方调整设置:
WinSCP 网站上的其他有用信息:传输队列
在传输 -> 后台首选项页面中,将最大同时连接数更改为1
,默认禁用队列处理,并确保禁用与后台传输相关的任何设置。
在传输时,您将看到传输对话框:
确保Transfer on background
联合国检查。
答案2
尝试调整设置“保持连接“来自 WinSCP。在保持连接框,您可以命令 WinSCP 定期发送一些虚拟数据以避免断开连接。此时间段定义为保持连接之间的秒数。在此处找到带有屏幕截图的完整详细信息:http://winscp.net/eng/docs/ui_login_connection