Скрипт для скачивания файлов с SSH Server

0

Можно ли создать сценарий, который следует тем же командам, которые FileZilla выполняет при подключении к ssh-серверу?

Когда я вхожу вручную, используя FileZilla, я получаю следующее сообщение для следующих типов подключения:

The server's host key is unknown. You have no guarantee that the server is the
computer you think it is.


    Host:  securedomain_1.com:22
    Fingerprint: ssh-dss 1024 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx

    Host:  securedomain_2.com:22
    Fingerprint: ssh-rsa 1024 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx

    Host:  securedomain_3.com:22
    Fingerprint: ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx


Trust this host and carry on connecting?
[ ] Always trust this host, add this key to the cache.
[OK] [CANCEL]

Я нажимаю ОК и НЕ добавляю ключ в кеш ...

Когда я вхожу вручную, это команды, которые FileZilla выполняет:

Status: Connecting to my.secure.site.com...
Response:   fzSftp started
Command:    open "user@my.secure.site.com" 22
    [asks for key...]
    [I manually click OK]
Command:    Trust new Hostkey: Once
Command:    Pass: ********
Status: Connected to my.secure.site.com
Status: Retrieving directory listing...
Command:    cd "/SFTP/DIR"
Response:   New directory is: "/SFTP/DIR"
Command:    ls
Status: Listing directory /SFTP/DIR
Status: Calculating timezone offset of server...
Command:    mtime "IN"
Response:   1412312345
Status: Timezone offsets: Server: -18000 seconds. Local: -18000 seconds. Difference: 0 seconds.
Status: Directory listing successful

Что именно происходит, когда я нажимаю кнопку ОК, чтобы «Доверять этому хосту и продолжать соединение»?

Я принимаю ключ от сервера SSH?

Это было бы для машины Windows. Я думал об использовании WinSCP, но я хотел бы понять, что происходит, когда я подключаюсь к этим серверам. У меня есть несколько сценариев, предназначенных для FTPS, которые не работают, когда для этих серверов.

jes516
источник
Должен ли я учитывать ключ в моем сценарии?
jes516

Ответы:

1

При подключении к серверу SSH вам необходимо убедиться, что вы доверяете ключу хоста сервера . Это сделано для предотвращения атаки «человек посередине» .

В сценариях WinSCP вы проверяете ключ хоста, используя -hostkeyпереключатель openкоманды.

open sftp://user:password@my.secure.site.com/ -hostkey="ssh-dss 2048 xx..."

Ссылки: Где взять отпечаток ключа хоста SSH для авторизации сервера?

Там есть руководство, как конвертировать Windows FTP скрипт в WinSCP SFTP скрипт .


Примечание относительно команд в журнале FileZilla: Эти команды являются частными командами psftp(которые FileZilla использует внутренне для реализации протокола SFTP). Они не имеют ничего общего с протоколами SFTP или SSH как таковыми. Очевидно, что все они сопоставляются внутренне с некоторыми SFTP-запросами, и вы можете эмулировать их все с помощью сценариев WinSCP. Но команды WinSCP были бы другими. Также обратите внимание, что SFTP, в отличие от FTP, является двоичным протоколом, поэтому нет текстовых команд, таких как в FTP ( cd, pwdи т. Д.)

Мартин Прикрыл
источник
это -hostkey=""все «отпечатки пальцев» информация , которая отображается в строке FileZilla? Кроме того, вы знаете, могу ли я проверить "ssh-соединения", используя openssh, сгенерировав ключ в Linux, а затем используя WinSCP + скрипт в Windows? Я использую Linux в VirtualBox для сценариев Python, так что я знаком с Linux / FTP, но я хотел бы сделать самотестирование, прежде чем я попытаюсь поразить фактический рабочий сервер (не мой сервер).
jes516
Да, это вся строка. См. [ Winscp.net/rus/docs/faq_script_hostkey ]( Где я могу получить отпечаток ключа хоста SSH для использования со сценариями?). Я предполагаю, что «генерирование ключа» означает «получение отпечатка ключа хоста» (в формате, необходимом для WinSCP).
Мартин Прикрыл
извините, да, сгенерировать ключ в openssh для меня, чтобы получить в среде Windows, используя winscp. будет ли эта идея иметь такой же эффект, как соединение в моем исходном сообщении? .. я могу провести тестирование без генерации трафика на
рабочий
OpenSSH отображает ключ хоста в формате, аналогичном FileZilla / WinSCP, за исключением того, что он не использует ssh-dss/ssh-rsa key_sizeпрефикс.
Мартин Прикрыл