连接到 SFTP 服务器时使用 SharpSSH 验证指纹
Veryfing fingerprints using SharpSSH while connecting to SFTP Server
我正在使用 Tamir.SharpSSH
在我的 .NET
代码中建立 SFTP
连接。我有服务器的主机、端口、用户名、密码和服务器的指纹。
我可以在没有指纹的情况下连接到服务器。在建立连接之前,有什么方法可以将我拥有的指纹与服务器的指纹相匹配吗?
以下是我的 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
服务器之前,我是否可以添加对服务器指纹的检查?
SharpSSH 愚蠢到默认不验证主机密钥。
您必须重新实现 SshBase.ConnectSession
而不是将 StrictHostKeyChecking
设置为 no
。
- 然后使用
JSch.getHostKeyRepository().add()
配置预期的主机密钥(或实现HostKeyRepository
接口)。
- 或者实现
UserInfo
接口,特别是 promptYesNo
方法。
我正在使用 Tamir.SharpSSH
在我的 .NET
代码中建立 SFTP
连接。我有服务器的主机、端口、用户名、密码和服务器的指纹。
我可以在没有指纹的情况下连接到服务器。在建立连接之前,有什么方法可以将我拥有的指纹与服务器的指纹相匹配吗?
以下是我的 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
服务器之前,我是否可以添加对服务器指纹的检查?
SharpSSH 愚蠢到默认不验证主机密钥。
您必须重新实现 SshBase.ConnectSession
而不是将 StrictHostKeyChecking
设置为 no
。
- 然后使用
JSch.getHostKeyRepository().add()
配置预期的主机密钥(或实现HostKeyRepository
接口)。 - 或者实现
UserInfo
接口,特别是promptYesNo
方法。