gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 08:03:44 26 4
gpt4 key购买 nike

这是我使用 SSH.NET 的代码

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

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

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

谁能给个建议?

最佳答案

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

我必须将身份验证更改为 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;
}
}
}

关于c# - SSH.NET - 未找到合适的身份验证方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34875331/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com