これはSSH.NETを使用した私のコードです
using (var sftp = new SftpClient(Host, username, password))
{
sftp.Connect();
}
ローカルコンピューターにインストールしたSFTPで動作しますが、クライアントから実際のSFTPサーバーを指すと、Renci.SshNet.Common.SshAuthenticationException:適切な認証方法が見つからず、認証を完了できません。
どの認証方法を使用するべきか、そしてFile Zillaで簡単なユーザー名とパスワードがうまくやっているドキュメントが見つかりません。
誰かアドバイスしてくれませんか?
わかりましたので、私の問題の答えは、それがsftpサーバーではなかったということです。それは単純なFTPサーバーだったので、Webリクエストを使用しました。
サーバーが実際に最初に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;
}
}
}