Проверка ключа хоста SSH в SFTP-клиентах Tectia и WinSCP

У меня есть два скрипта для загрузки файлов на SFTP-сервер:

sftp2 --identity-key-file=D:\test_ssh2 -B d:\test.txt [email protected]
open sftp://[email protected] -privatekey=D:\test.ppk -hostkey="ssh-rsa 1536 xxxxxxxxxxxxxxxxxxxxxxxxxxx"

Пожалуйста, помогите объяснить:

  1. В чем разница между двумя сценариями?
  2. Почему первому скрипту не нужен ключ хоста, а второму?
  3. Могу ли я вызвать SFTP с закрытым ключом без использования ключа хоста?

person king jia    schedule 04.09.2017    source источник


Ответы (1)


В чем разница между двумя сценариями?

Первый — пакетный файл с использованием клиента Tectia sftp2.exe.
Второй — файл сценария WinSCP.


Почему первому скрипту не нужен ключ хоста, а второму?

Большинство клиентов SFTP/SSH предложит вам проверить отпечаток ключа хоста при первом подключении. Если вы подтвердите ключ хоста, он будет кэширован, и в следующий раз вы не получите запрос.

Tectia sftp2.exe и WinSCP ничем не отличаются.

Если ваш скрипт Tectia sftp2.exe работает как есть, вы должны были вручную проверить ключ хоста в этом клиенте.

Хотя ваш сценарий WinSCP содержит явный отпечаток ключа хоста. Таким образом, сценарий будет работать, даже если вы не проверили ключ хоста вручную с помощью WinSCP перед запуском сценария. Рекомендуется использовать WinSCP, так как он делает ваш сценарий переносимым (не зависящим от скрытый кеш ключей хоста). Но если вы предпочитаете, вы можете проверить ключ хоста вручную с помощью WinSCP, так же, как вы сделали с Tectia.


Могу ли я вызвать SFTP с закрытым ключом без использования ключа хоста?

Закрытый ключ не имеет ничего общего с ключом хоста. Так что этот вопрос не имеет большого смысла. См. статью WinSCP о парах ключей SSH, чтобы понять.

person Martin Prikryl    schedule 04.09.2017