2014-09-19 5 views
1

Я разрабатываю клиент SFTP WinSCP с использованием C# (сборка .NET). В моей тестовой среде я сделал это с помощью аутентификации по паролю. Вот мои варианты сеанса:Как использовать .crt-файл для проверки подлинности открытого ключа SSH

// Setup session options 
SessionOptions sessionOptions = new SessionOptions { 
    Protocol = Protocol.Sftp, 
    HostName = "example.com", 
    UserName = "user", 
    Password = "mypassword", 
    SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx" 
}; 

Но у реальной среды нет пароля для пользователя. Администратор сервера предоставляет открытый ключ с расширением «.crt»

Итак, используя этот открытый ключ, как я могу изменить свою программу (SessionOptions)?

Достаточно ли этих данных для продолжения этой реализации?

Предварительный просмотр Crt файла

enter image description here

+0

Вы уверены, что используете SFTP? Файл '.crt' выглядит как сертификат, что используется с TLS/SSL (возможно, FTPS = FTP через TLS/SSL), а не с SSH (SFTP). Также вам нужен закрытый ключ, а не открытый ключ (но '.crt' может содержать оба). Вы должны сгенерировать свой закрытый ключ самостоятельно, вы не должны получать его от администратора. Таким образом, другая путаница может заключаться в том, что для аутентификации используется сертификат сервера, а не сертификат вашей учетной записи. –

+0

Спасибо, Мартин ... Можете ли вы дать мне несколько шагов, чтобы сделать аутентификацию открытого ключа SFTP? – Suravi

+0

Нет, если вы не ответили хотя бы на один из моих вопросов выше. Я не видел файл '.crt', используемый для аутентификации открытого ключа SFTP. Как выглядит файл при его открытии (в текстовом редакторе)? Получали ли у вас информацию/документацию от администратора о том, как ее использовать (даже если для другого клиента/инструмента)? –

ответ

1

С расширением, внешний вид и размер файла, который вы получили, я считаю, что это открытый ключ сервера в виде сертификата.

Во-первых, открытый ключ сервера может использоваться только для проверки того, что сервер, к которому вы подключились, является тем, к которому вы хотели подключиться (т. Е. Не существует атаки «человек в середине»).

Во-вторых, формат сертификата ключей никогда не используется с SSH. Он используется с TLS/SSL, например, с FTPS (FTP через TLS/SSL) или HTTPS.

Я бы сказал, что между вами и администратором сервера существует некоторое недоразумение.

Если вы хотите получить более подробную информацию, лучше спросить об SuperUser или ServerFault, так как это не похоже на вопрос программирования в конце.

+0

Спасибо Martin.using winSCP есть ли способ аутентификации с открытым ключом? (без пароля). – Suravi

+0

Конечно, используйте ['SessionOptions.SshPrivateKeyPath'] (http://winscp.net/rus/docs/library_sessionoptions). Но для этого вам сначала нужно убедиться, что вы подключаетесь к SSH/SFTP-серверу вообще, и вам нужно иметь закрытый ключ и регистрировать открытый ключ на сервере. См. [Настройка аутентификации открытого ключа SSH] (http://winscp.net/rus/docs/guide_public_key) –

+0

Мартин, вы можете дать мне способ аутентификации с открытым ключом, например this.http: //winscp.net/rus/ docs/ssh # authentication_in_ssh – Suravi

 Смежные вопросы

  • Нет связанных вопросов^_^