Можно ли создать скрипт, который следует тем же командам, которые 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, которые не работают, когда для этих серверов.

1 ответ1

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 и т.д.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .