Можно ли создать сценарий, который следует тем же командам, которые 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, которые не работают, когда для этих серверов.
Ответы:
При подключении к серверу SSH вам необходимо убедиться, что вы доверяете ключу хоста сервера . Это сделано для предотвращения атаки «человек посередине» .
В сценариях WinSCP вы проверяете ключ хоста, используя
-hostkey
переключательopen
команды.Ссылки: Где взять отпечаток ключа хоста 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, но я хотел бы сделать самотестирование, прежде чем я попытаюсь поразить фактический рабочий сервер (не мой сервер).ssh-dss/ssh-rsa key_size
префикс.