SFTP服务器认证类型导致无法登录的问题

现象

程序无法连接到某个SFTP服务器,但是可以连接其它SFTP服务器。
应用日志中只报“连接错误”,没有详细信息。
使用的是用户名/密码的方式,未使用密钥(对方服务器无我方身份信息)。

原因与分析

经过其它工具的测试和提取日志,发现服务器要求:

Auth Type: Keyboard-interactive

SFTP服务器的认证方式除了我们熟悉的,公钥(密钥),用户名/密码,其实还有几种方式。

  1. PublicKey - 公钥(密钥)
  2. Password - 用户名/密码
  3. Keyboard-interactive - 键盘交互
  4. RHosts
  5. HostBased - 基于主机

此例中SFTP服务器要求键盘交互,并发送了Password: 的提示,而程序没有响应。

解决办法

修改程序,增加SFTP对于键盘交互认证方式的支持。

代码


不同的开发工具支持的方式不同,故不强调代码。

测试结果

可以正常登录。

猜你喜欢

转载自blog.csdn.net/ddrfan/article/details/85251691