Отпечатки пальцев с использованием SharpSSH при подключении к SFTP-серверу
Я использую 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
Сервер?
1 ответ
Решение
SharpSSH достаточно глуп, чтобы не проверять ключи хоста по умолчанию.
Вы должны были бы повторно реализовать SshBase.ConnectSession
не устанавливать StrictHostKeyChecking
в no
,
- А потом использовать
JSch.getHostKeyRepository().add()
настроить ожидаемый ключ хоста (или реализоватьHostKeyRepository
интерфейс). - Или реализовать
UserInfo
интерфейс, особенноpromptYesNo
метод.