0

Tamir.SharpSSH用来SFTP在我的.NET代码中建立连接。我有服务器的主机、端口、用户名、密码和服务器的指纹。

我可以在没有指纹的情况下连接到服务器。在建立连接之前,有什么方法可以将我的指纹与服务器的指纹匹配?

以下是我C#的连接代码:

string _ftpURL = "ftp.com"; //Host URL or address of the SFTP server
string _UserName = "Login_Id";      //User Name of the SFTP server
string _Password = "12345";   //Password of the SFTP server
int _Port = 22;                  //Port No of the SFTP server (if any)
string _ftpDirectory = "ReceivedFiles"; //The directory in SFTP server where the files will be uploaded
string LocalDirectory = "D:\\FilePuller"; //Local directory from where the files will be uploaded

ArrayList UploadedFiles = new ArrayList();

Sftp oSftp = new Sftp(_ftpURL, _UserName, _Password);

oSftp.Connect(_Port);

无论如何我可以在连接到SFTP服务器之前添加对服务器指纹的检查吗?

4

1 回答 1

0

SharpSSH 很愚蠢,默认情况下不会验证主机密钥。

您将不得不重新实现SshBase.ConnectSession不设置StrictHostKeyCheckingno.

  • 然后用于JSch.getHostKeyRepository().add()配置预期的主机密钥(或实现HostKeyRepository接口)。
  • 或者实现UserInfo接口,特别是promptYesNo方法。
于 2015-02-27T13:23:11.373 回答