SSH.NET - No suitable authentication method found

烂漫一生 提交于 2021-02-07 05:11:34

问题


This is my code using SSH.NET

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

It works on a SFTP I installed on my local computer but when I point it at a real SFTP server from a client I get a Renci.SshNet.Common.SshAuthenticationException: No suitable authentication method found to complete authentication.

I cannot find any documentation on what authentication methods I should be using and on File Zilla a simple user name and password is doing the trick.

Can anyone please advise?


回答1:


I found the answer (at least for my problem, which seems to be the same as the op requested):

I had to change the Authentication to KeyboardInteractiveAuthenticationMethod

So this works now:

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 then passes the Password:

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;
        }
    }
}



回答2:


Ok so the answer to my problem is that it wasn't an sftp server. It was a simple ftp server so i just used a webrequest.

Check the server is actually an sftp server first.



来源:https://stackoverflow.com/questions/34875331/ssh-net-no-suitable-authentication-method-found

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!