SSH.NET - 未找到合适的身份验证方法

SSH.NET - No suitable authentication method found

这是我使用 SSH.NET

的代码
using (var sftp = new SftpClient(host, username, password))
{                
    sftp.Connect();  
}

它可以在我安装在本地计算机上的 SFTP 上运行,但是当我将它指向来自客户端的真实 SFTP 服务器时,我收到 Renci.SshNet.Common.SshAuthenticationException:找不到合适的身份验证方法来完成身份验证。

我找不到任何关于我应该使用什么身份验证方法的文档,在 File Zilla 上,一个简单的用户名和密码就可以了。

谁能指教一下?

好的,我的问题的答案是它不是 sftp 服务器。这是一个简单的 ftp 服务器,所以我只使用了一个网络请求。

首先检查服务器是否为sftp服务器。

我找到了答案(至少对于我的问题,这似乎与操作请求的相同):

我必须将身份验证更改为 KeyboardInteractiveAuthenticationMethod

现在可以使用了:

KeyboardInteractiveAuthenticationMethod keybAuth = new KeyboardInteractiveAuthenticationMethod(SFTP_USR);
keybAuth.AuthenticationPrompt += new EventHandler<AuthenticationPromptEventArgs>(HandleKeyEvent);

ConnectionInfo conInfo = new ConnectionInfo(SFTP_HST, SFTP_PRT, SFTP_USR, keybAuth);

using (SftpClient sftp = new SftpClient(conInfo))
{
    sftp.Connect();

    // Do SFTP Stuff, Upload, Download,...

    sftp.Disconnect();
}

HandleKeyEvent 然后传递密码:

private void HandleKeyEvent(object sender, AuthenticationPromptEventArgs e)
{ 
    foreach (AuthenticationPrompt prompt in e.Prompts)
    {
        if (prompt.Request.IndexOf("Password:", StringComparison.InvariantCultureIgnoreCase) != -1)
        {
            prompt.Response = SFTP_PWD;
        }
    }
}